Arcgis Engine之打开MXD文档

Arcgis Engine之打开MXD文档

概述

图层加载功能将用到MapControl 控件提供的LoadMxFile 方法
该方法通过指定的*. Mxd文档路径直接获取

该方法第一个参数是文件路径,
第二个参数是MExd文档中地图的名称或索引,
第三个参数是密码,这里使用.
 NET的Type. Missing字段通过反射进行调用获取参数的默认值。

在这里插入图片描述
加载Mxd文档可以通过MapControl 控件的LoadIxFile 方法,也可以通过MapDocument对象对地图文档中的地图逐个加载,MapDocument 提供了open 方法,用于打开一个地图文档文件。

该方法第一个参数为地图文档文件的路径,第二个参数为密码。

例如:

mapDocument = new ESRI.ArcGIS.Carto.MapDocumentClass();
mapDocument.Open(filePath,"");

在这里插入图片描述

一个Mxd文档中可以包含多个地图,loadMapDocument2方法,演示如何读取MXD文档中特定的地图,MapControl控件提供了ReadMxMaps方法,用于获取Mxd文档中地图数组,找到特定地图,再进行加载。

在这里插入图片描述

在这里插入图片描述

axMapControl1.LoadMxFile(filename);
IMapDocument iMapDoc = new MapDocument();//注意名词有无“I"
iMapDoc.Open(filename);
axMapControl1.Map = iMapDoc.ActiveView.FocusMap;//赋值

方法一:

OpenFileDialog dlg = new OpenFileDialog();
            dlg.Filter = "Map Document|*.mxd";//前面是一个提示,后面是过滤
            dlg.Multiselect = false;
            dlg.Title = "Open Map Document";
            //调用对话框
            if (dlg.ShowDialog() == DialogResult.OK)
            //下面按钮有OK Conser(取消)
            {
                //判定是否选择文件
                string filename = dlg.FileName;
                if (filename == "")//判断是否选择文件为空
                {
                    return;
                }
                //判定这个MXD文档是否为点文档
                //axMapControl实际上可以是MapControl,在controls类库,
                //作业:查看controls和MapControl类库
                //LoadMxFile方法,检查是否为有效的地图文档
                if (axMapControl1.CheckMxFile(filename))//如果地图文档有效,则加入
                {
                    //方法一:axMapControl1.LoadMxFile(filename);
                    //方法二:
                    IMapDocument iMapDoc = new MapDocument();//注意名词有无“I"
                    iMapDoc.Open(filename);
                    //作业:查IMapDOcument类
                    //打开在了地图文档对象里面,
                    axMapControl1.Map = iMapDoc.ActiveView.FocusMap;//赋值
                    //地图文档里面显示地图文档对象里面的地图,此刻再运行
                    //要用一个地图文档对象,查看这个IMapDocument所有的能力,所有常用的接口,每一个接口都有什么样的方法
                    //AE开发用的都是接口,暴露的是接口,我们首先访问的是接口,后面我们都去用相关的属性和方法,MapDocument的Open方法
                    //不是控件打开接口,而是对象的接口的Open方法,Open到哪里呢?实际上,装载到内存中,Open到这个对象中了,我们的控件还没有展示这个内容
                    //加载到地图控件中,是利用Map属性进行赋值,内存中指向的处于激活状态的地图,在控件中打开

                    //第三个方法,是利用Icommand,用相关的control,谁去接受这个地图文档,接受是用iCom,
                    //OnClick事件包含打开实现的代码
                    //单独加载一个shapefile文件
                    //方法一:再加一个command,但是不美观
                    //方法二:加菜单,菜单最多加两层,不要再深了,再把button1的代码加过去
                }
                else
                {
                    MessageBox.Show("无效的地图文档!");
                }
                axMapControl1.Refresh();//地图的刷新
                //加注释,
                //考试内容:给代码加注释

方法二:

https://blog.csdn.net/qq_37811638/article/details/82182029

substring()的作用就是截取父字符串的某一部分

public String substring(int beginIndex, int endIndex)

第一个参数int为开始的索引,对应String数字中的开始位置,

第二个参数是截止的索引位置,对应String中的结束位置

1、取得的字符串长度为:endIndex - beginIndex;

2、从beginIndex开始取,到endIndex结束,从0开始数,其中不包括endIndex位置的字符


1)、substring(a,b)中的参数a其值可以从索引值0开始,

当a等于0时,则表示其从字符串的第一个字符开始算起,

也就是其子字符串是包含第一个字符的,当然,你也可以从后续的其他字符开始;

2)、substring(a,b)中的参数b,其值最大可以为 父字符串的长度,

但并不包含索引值为b的那个字符。


《宾馆客房管理系统》是一个基于C#MySQL的项目,旨在帮助学习者掌握数据库管理和系统开发知识。该项目通过完整代码实现,将编程技术应用于宾馆客房管理的实际业务场景。 C#是微软开发的面向对象编程语言,广泛用于Windows应用程序开发。在本项目中,C#用于构建用户界面、处理业务逻辑以及数据库交互。它拥有丰富的类库,便于开发复杂图形用户界面(GUI),并通过ADO.NET组件实现MySQL数据库的连接。MySQL是一种流行的开源关系型数据库管理系统(RDBMS),常用于Web应用程序,用于存储客房、预订、客户等核心数据。通过SQL语句,开发者可对数据进行增、删、改、查操作。系统中可能涉及“客房表”“预订表”“客户表”等,包含客房编号、类型、价格、预订日期等字段。 数据库连接是系统的关键部分。C#通过ADO.NET的SqlConnection类连接MySQL数据库,连接字符串包含服务器地址、数据库名称、用户名和密码。用户下载项目后,需根据本地环境修改连接字符串中的用户名和密码。系统主要功能模块包括:客房管理,可展示、添加、修改、删除客房信息;预订管理,处理预订的查看、新增、修改和取消;客户管理,存储和管理客户个人信息;查询功能,支持按客房类型、价格范围、预订日期等条件查询;报表和统计功能,生成入住率、收入统计等报表辅助决策。开发者需编写C#方法对应数据库操作,同时设计直观易用的界面,方便用户完成预订流程。项目中的MySQL文件可能是数据库脚本或配置文件,包含建表、数据填充及权限设置等内容,用户需在本地测试前运行脚本设置数据库环境。 总之,该系统结合C#和MySQL,为学习者提供了一个涵盖数据库设计、业务逻辑处理和界面开发的综合实践案例,有助于提升开发者在数据库应用和系统集成方面的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值