• 介绍ArcGIS中各种数据的打开方法——mxd(地图文档)


    1、加载地图文档

    在ArcGIS中,以mxd作为扩展名的文件叫地图文档。

    地图文档中只是包含图层的引用,即存储当前地图的图层路径、符号、状态、修饰等信息,并不存储真实的数据层

    ArcGIS Map中,图层(Layer)是地图(Map)的基本组成单位。图层可以是要素图层,也可以是栅格图层。要素图层有点、线、面3种显示不同类型要素类的图层,也有专题图层,如显示拓扑检查结果的图层、网络分析结果图层等;栅格图层是航片、遥感影像、数字高程模型、普通图片等。

    介绍两种打开mxd文件的方法

    方法一:运用LoadMxFile方法的函数参数加载地图文档

    地图文档的加载功能将用到MapControl控件提供的LoadMxFile方法。

    //三个参数(filePath——文件路径、0——地址名称或索引、Type.Missing——通过反射进行调用获取参数的默认值)
    axMapControl1.LoadMxFile(filePath, 0, Type.Missing);

    该方法通过指定的*.mxd文档路径直接获取。

    该方法第一个参数是文件的路径第二个参数是mxd文档中地图的名称或者索引第三个参数是打开地图文档的密码


    方法二:运用MapDocument对象中的Open方法的函数加载mxd文档

    //filePath——地图文档的路径, ""——赋予默认密码
    mapDocument.Open(filePath, "");

    通过MapDocument对象对地图文档的地图逐个加载,MapDocument提供了Open方法,用于打开一个地图文档文
    件,该方法的第一个参数为地图文档文件的路径,第二个参数为密码

     

    核心代码:

    #region 加载mxd地图文档
            private void 加载mxd地图文档toolStripLabel1_Click(object sender, EventArgs e)
            {
                //方法一:
                //loadMapDoc1();//调用MapControl控件的LoadMxFile方法
    
                //方法二:
                loadMapDoc2();
            }
            /// <summary>
            /// 方法二:运用MapDocument对象中的Open方法的函数加载mxd文档
            /// </summary>
            private void loadMapDoc2()
            {
                IMapDocument mapDocument = new MapDocumentClass();
                try
                {
                    OpenFileDialog ofd = new OpenFileDialog();
                    ofd.Title = "打开地图文档";
                    ofd.Filter = "map documents(*.mxd)|*.mxd";
                    if(ofd.ShowDialog()==DialogResult.OK)
                    {
                        string pFileName = ofd.FileName;
                        //filePath——地图文档的路径, ""——赋予默认密码
                        mapDocument.Open(pFileName, "");
                        for (int i = 0; i < mapDocument.MapCount; i++)
                        {
                            //通过get_Map(i)方法逐个加载
                            axMapControl1.Map = mapDocument.get_Map(i);
                        }
                        axMapControl1.Refresh();
                    }
                    else
                    {
                        mapDocument = null;
                    }
                }
                catch(Exception e)
                {
                    MessageBox.Show(e.ToString());
                }
    
            }
         
            /// <summary>
            /// 方法一:运用LoadMxFile方法的函数参数加载地图文档
            /// </summary>
            private void loadMapAccDoc1()
            {
                OpenFileDialog ofd = new OpenFileDialog();
                ofd.Title = "打开地图文档";
                ofd.Filter = "map documents(*.mxd)|*.mxd";
                ofd.InitialDirectory = m_Path;
                //判断, 如果对话框结构不为OK, 退出函数体
                DialogResult DR = ofd.ShowDialog();
                if (DR != DialogResult.OK)
                    return;
                string filePath = ofd.FileName;
                if (axMapControl1.CheckMxFile(filePath))
                {
                    //设置axMapControl控制鼠标指针图标选项为沙漏光标
                    axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerArrowHourglass;
                    //三个参数(filePath——文件路径、0——地址名称或索引、Type.Missing——通过反射进行调用获取参数的默认值)
                    axMapControl1.LoadMxFile(filePath, 0, Type.Missing);
                    //定义axMapControl控制鼠标指针图标为默认箭头
                    axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;
                    axMapControl1.Extent = axMapControl1.FullExtent;
                }
                else
                {
                    MessageBox.Show(filePath + "不是有效的地图文档");
                }
            }
            #endregion

    谢谢观看!本人初学GIS二次开发,如果有不对的地方,请多多包涵!

  • 相关阅读:
    python中if __name__ == '__main__': 的解析
    python项目练习地址
    HTTP Response Splitting攻击探究 <转>
    常用操作系统扫描工具介绍
    app兼容性测试的几种方案
    svn自动备份并上传到ftp
    有关交易的性能测试点
    修改文件测试的测试点
    新增文件测试的测试点
    添加附件测试的测试点
  • 原文地址:https://www.cnblogs.com/edcoder/p/11718684.html
Copyright © 2020-2023  润新知