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 面试知识点
    JAVA String.format()的使用
    XorPay.com 支付平台介绍【免费申请个人微信支付接口】
    PC软件/web网站/小程序/手机APP产品如何增加个人收款接口
    个人收款之微信小微商户
    个人小程序接入支付解决方案
    XorPay 个人支付平台增加 个人支付宝支付接口
    Javascript中那些你不知道的事之-- false、0、null、undefined和空字符串
    网页启用Gzip压缩 提高浏览速度
    C/S架构和B/S架构的概念和区别
  • 原文地址:https://www.cnblogs.com/gisoracle/p/7069279.html
Copyright © 2011-2022 走看看