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,"");

Arcgis Engine之打开MXD文档_第1张图片

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

Arcgis Engine之打开MXD文档_第2张图片

Arcgis Engine之打开MXD文档_第3张图片

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的那个字符。


你可能感兴趣的:(GIS开发,笔记,arcgis,C#)