[C#] [ArcGIS] [Engine] 0x001 地图文档操作(新建、打开、保存、另存为等)

目录

1.Intro

2.Environment

3.Source

4.Conclusion


1.Intro

消失了一段时间,被拉去搞C/S系统,可算是发布了,测试了半把个月,总算是有了1个Bug... 另一个小伙伴也被调走了,心里苦啊。所以分享部分的通用库和奇技淫巧,不定期更新。

 

2.Environment

Environment:Windows 7及以上

Language:C#

IDE:Visual Studio 2012

SDK:ArcGIS Engine 10.2

 

3.Source

    [Guid("ddbdc19a-82f9-4caa-9c65-d38589704de2")]
    [ClassInterface(ClassInterfaceType.None)]
    [ProgId("Libs_GIS.Document_Operate")]
    public sealed class Document_Operate
    {
        #region 调用 ArcGIS 命令对文档进行操作

        /// <summary>
        /// 创建新MXD文档
        /// </summary>
        /// <param name="axMapControl">地图对象</param>
        public static void New_MXD_Document(AxMapControl axMapControl)
        {
            ICommand command = new CreateNewDocument();
            command.OnCreate(axMapControl.Object);
            command.OnClick();
        }

        /// <summary>
        /// 打开MXD文档
        /// </summary>
        /// <param name="axMapControl">地图对象</param>
        public static void Open_MXD_Document(AxMapControl axMapControl)
        {
            ICommand command = new ControlsOpenDocCommandClass();
            command.OnCreate(axMapControl.Object);
            command.OnClick();
        }

        /// <summary>
        /// 保存MXD文档
        /// </summary>
        /// <param name="axMapControl">地图对象</param>
        public static void Save_MXD_Document(AxMapControl axMapControl)
        {
            string mapDocument_Name = axMapControl.DocumentFilename.ToString();

            if (mapDocument_Name == string.Empty)
                MessageBox.Show("请另存为新文档!");

            if (axMapControl.CheckMxFile(mapDocument_Name))
            {
                IMapDocument mapDoc = new MapDocumentClass();
                mapDoc.Open(mapDocument_Name, string.Empty);

                if (mapDoc.get_IsReadOnly(mapDocument_Name))
                {
                    MessageBox.Show("地图文档是只读的!");
                    mapDoc.Close();
                    return;
                }

                mapDoc.ReplaceContents((IMxdContents)axMapControl.Map);
                mapDoc.Save(mapDoc.UsesRelativePaths, false);
                mapDoc.Close();
            }
        }

        /// <summary>
        /// 另存为MXD文档
        /// </summary>
        /// <param name="axMapControl">地图对象</param>
        public static void SaveAs_MXD_Document(AxMapControl axMapControl)
        {
            ICommand command = new ControlsSaveAsDocCommandClass();
            command.OnCreate(axMapControl.Object);
            command.OnClick();
        }

        #endregion
    }

 

4.Conclusion

不多比比,直接上代码,都在注释里了兄弟。

 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dr_Asada

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值