> 文章列表 > Arcgis Engine之打开MXD文档

Arcgis Engine之打开MXD文档

Arcgis Engine之打开MXD文档

Arcgis Engine之打开MXD文档

    • 概述

概述

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

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

Arcgis Engine之打开MXD文档
加载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的那个字符。