zoukankan      html  css  js  c++  java
  • ArcGIS Engine开发之地图文档保存

    ArcGIS Engine开发之地图文档保存

     来自:http://www.cnblogs.com/dongteng/p/5880961.html

    在对地图文档进行修改后,经常需要对其进行保存。地图文档的保存有直接保存和另存为两种方式。这里的地图文档的修改指的是修改地图文档文件记录信息,不是对空间数据的编辑。

    1.地图文档保存

    具体实现的思路:

    1)地图文档的保存主要使用IMapDocument接口,首先使用IMxdContents接口读取已打开的地图文档的内容,并使之替换IMapDocument接口的实例对象。

    2)保存时使用IMapDocument接口的Save方法,函数原型为 public void Save (bool)bUserelativePaths,bool bCreateThumbail).

    Save方法的参数说明
    参数 描述
    bUseRelativepaths 是否保存为相对路径(区别于决定路径)
    bCreatThumnbail 表示保存的地图在ArcCatalog中查看时显示缩略图

    代码:

    复制代码
     private void btnSaveData_ItemClick(object sender, ItemClickEventArgs e)
            {
                try
                {
                    string sMxdFileName = mainMapControl.DocumentFilename;
                    IMapDocument pMapDocument = new MapDocumentClass();
                    if (sMxdFileName != null && mainMapControl.CheckMxFile(sMxdFileName))
                    {
                        if (pMapDocument.get_IsReadOnly(sMxdFileName))
                        {
                            MessageBox.Show("地图本当为只读,不能保存!");
                            pMapDocument.Close();
                            return;
                        }
                    }
                    else
                    {
                        SaveFileDialog pSaveFileDialog = new System.Windows.Forms.SaveFileDialog();
                        pSaveFileDialog.Title = "请选择保存路径";
                        pSaveFileDialog.Filter = "ArcMap文档(*.mxd)|*.mxd|ArcMap模板(*.mxt)|*.mxt";
                        pSaveFileDialog.OverwritePrompt = true;
                        pSaveFileDialog.RestoreDirectory = true;
                        if (pSaveFileDialog.ShowDialog() == DialogResult.OK)
                        {
                            sMxdFileName = pSaveFileDialog.FileName;
                        }
                        else
                        {
                            return;
                        }
                    }
                    pMapDocument.New(sMxdFileName);
                    pMapDocument.ReplaceContents(mainMapControl.Map as IMxdContents);
                    pMapDocument.Save(pMapDocument.UsesRelativePaths, true);//保存为绝对路径
                    pMapDocument.Close();
                    MessageBox.Show("保存文档成功");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            
            }
    复制代码

    2、地图文档另存为

    实现的思路:

    1)地图文档的另存为与保存的方法类似,保存前需要判断保存的路径是否存在相同的文件。

    2)另存为需要使用IMapDocument接口的New方法创建新的路径。

    代码:

    复制代码
    private void btnSaveAs_ItemClick(object sender, ItemClickEventArgs e)
            {
                try
                {
                    SaveFileDialog pSaveDialog = new System.Windows.Forms.SaveFileDialog();
                    pSaveDialog.Title = "另存为";
                    pSaveDialog.OverwritePrompt = true;//当相同的文件存在是提示错误
                    pSaveDialog.Filter = "ArcMap文档(*.mxd)|*.mxd|ArcMap模板(*.mxt)|*.mxt";
                    pSaveDialog.RestoreDirectory = true;
                    if (pSaveDialog.ShowDialog() == DialogResult.OK)
                    {
                        string sFilePath = pSaveDialog.FileName;
                        IMapDocument pMapDocument = new MapDocumentClass();
                        pMapDocument.New(sFilePath);
                        pMapDocument.ReplaceContents(mainMapControl.Map as IMxdContents);
                        pMapDocument.Save(true, true);
                        pMapDocument.Close();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    复制代码
  • 相关阅读:
    【java基础学习一】int[]、Integer[]、String[] 排序( 正序、倒叙)、去重
    【转】jqGrid 各种参数 详解
    CSS 中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑
    Web应用程序项目XX已配置为使用IIS
    zsh安装及配置
    vscode安装及配置
    matlab2018a安装及配置
    teminator安装及配置
    clion安装及配置
    pcl之octree的使用
  • 原文地址:https://www.cnblogs.com/gisoracle/p/7069279.html
Copyright © 2011-2022 走看看