ArcEngine将高版本MXD文档保存为低版本MXD文档的方法

读大学的时候,班里有些同学装的是ArcGIS10.0,有些是10.1,我则是安装了10.2,这就导致我做的MXD文档别人用不了。下面来说一下ArcEngine中如何将高版本的MXD文档保存为低版本的MXD文档,我这里的用的是ArcEngine 10.4,代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.Output;

namespace WindowsFormsApplication1
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        // 加载文档
        private void btnLoad_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Title = "选择MXD文档";
            openFileDialog.Filter = "MXD文档(*.mxd)|*.mxd";
            openFileDialog.RestoreDirectory = true;
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                if (axMapControl1.CheckMxFile(openFileDialog.FileName))
                {
                    IMapDocument pMapDocument = new MapDocument();
                    pMapDocument.Open(openFileDialog.FileName, "");
                    axMapControl1.Map = pMapDocument.ActiveView.FocusMap;
                    axMapControl1.ActiveView.Refresh();
                }
            }
        }

        // 保存为低版本的ArcGIS文档
        private void btnSave_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.Title = "另存为";
            saveFileDialog.Filter = "ArcGIS 9.0文档(*.mxd)|*.mxd|ArcGIS 9.2文档(*.mxd)|*.mxd|ArcGIS 9.3文档(*.mxd)|*.mxd|" +
                                    "ArcGIS 10.0文档(*.mxd)|*.mxd|ArcGIS 10.1文档(*.mxd)|*.mxd|ArcGIS 10.3文档(*.mxd)|*.mxd|ArcGIS 10.4文档(*.mxd)|*.mxd";
            saveFileDialog.RestoreDirectory = true;
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                IMxdContents pMxdContent = axMapControl1.Map as IMxdContents;
                IMapDocument pMapDocument = new MapDocument();
                pMapDocument.New(saveFileDialog.FileName);
                pMapDocument.ReplaceContents(pMxdContent);

                // 切換版本
                IDocumentVersion pDocumentVersion = pMapDocument as IDocumentVersion;
                switch (saveFileDialog.FilterIndex)
                {
                    case 1:
                        {
                            pDocumentVersion.DocumentVersion = esriArcGISVersion.esriArcGISVersion90;
                        }
                        break;
                    case 2:
                        {
                            pDocumentVersion.DocumentVersion = esriArcGISVersion.esriArcGISVersion92;
                        }
                        break;
                    case 3:
                        {
                            pDocumentVersion.DocumentVersion = esriArcGISVersion.esriArcGISVersion93;
                        }
                        break;
                    case 4:
                        {
                            pDocumentVersion.DocumentVersion = esriArcGISVersion.esriArcGISVersion10;
                        }
                        break;
                    case 5:
                        {
                            pDocumentVersion.DocumentVersion = esriArcGISVersion.esriArcGISVersion101;
                        }
                        break;
                    case 6:
                        {
                            pDocumentVersion.DocumentVersion = esriArcGISVersion.esriArcGISVersion103;
                        }
                        break;
                    case 7:
                        {
                            pDocumentVersion.DocumentVersion = esriArcGISVersion.esriArcGISVersion104;
                        }
                        break;
                    default:
                        {
                            pDocumentVersion.DocumentVersion = esriArcGISVersion.esriArcGISVersion104;
                        }
                        break;
                }

                // 保存
                pMapDocument.Save(true, true);
            }
        }
    }
}

发布了99 篇原创文章 · 获赞 16 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/HerryDong/article/details/103673990
今日推荐