Giser5945

1.新建地图文档

        public IMapDocument pMapDoc;

        private void TSMenuItem_New_Click(object sender, EventArgs e)
        {
            pMapDoc = new MapDocumentClass();
            //设置默认路径
            string filePath = Application.StartupPath + "\\Temp\\Untitled.mxd";
            pMapDoc.New(filePath);
            pMapDoc.Open(filePath, "");
            //空白的地图文件只有一个地图
            axMapControl1.Map = pMapDoc.get_Map(0);
            MessageBox.Show("新建地图文档成功!");
        }

 

2.打开地图文档

        private void TSMenuItem_Open_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "Map Documents(*.mxd)|*.mxd";
            if(openFileDialog.ShowDialog()==DialogResult.OK)
            {

                第一种方式
                string fileName = Path.GetFileName(filePath);
                if (axMapControl1.CheckMxFile(fileName))
                {
                    axMapControl1.MousePointer = esriControlsMousePointer.esriPointerHourglass;
                    axMapControl1.LoadMxFile(fileName, 0, Type.Missing);
                    axMapControl1.MousePointer = esriControlsMousePointer.esriPointerDefault;
                }
                else
                {
                    MessageBox.Show("所选文件不是地图文档文件!", "信息提示");
                    return;
                }

                第二种方式

                pMapDoc = new MapDocumentClass();
                pMapDoc.Open(filePath,"");
                for(int i=0;i<pMapDoc.MapCount;i++)
                {
                    axMapControl1.Map=pMapDoc.get_Map(i);
                }
                axMapControl1.ActiveView.Refresh();
            }
        }

 

3.保存地图文档

3.1 用于自定义IMapDocument接口打开地图文档时

        private void TSMenuItem_Save_Click(object sender, EventArgs e)
        {
            //如何pMapDoc为空,取消保存
            if (pMapDoc == null) return;

            if (pMapDoc.get_IsReadOnly(pMapDoc.DocumentFilename))
            {
                MessageBox.Show("地图文档是只读的,不能保存!");
                return;
            }

            //根据相对路径保存文档
            pMapDoc.Save(pMapDoc.UsesRelativePaths, true);
            MessageBox.Show("地图文档保存成功!");
        }

3.2 用于使用AE内置方式打开地图文档时(快捷方式打开)

        private void TSMenuItem_Save_Click(object sender, EventArgs e)
        {
            IMxdContents pMxdC = axMapControl1.Map as IMxdContents;
            IMapDocument pMapDoc= new MapDocumentClass();
            pMapDoc.Open(axMapControl1.DocumentFilename, "");
            pMapDoc.ReplaceContents(pMxdC);

            if (pMapDoc== null) return;

            if (pMapDoc.get_IsReadOnly(pMapDoc.DocumentFilename))
            {
                MessageBox.Show("地图文档是只读的,不能保存!");
                return;
            }

            pMapDoc.Save(pMapDoc.UsesRelativePaths, true);

            MessageBox.Show("地图文档保存成功!");
        }

3.3 用于使用AE内置方式添加数据时(快捷方式添加数据)

        private void TSMenuItem_Save_Click(object sender, EventArgs e)
        {
            IMxdContents pMxdC = axMapControl1.Map as IMxdContents;
            IMapDocument pMapDoc= new MapDocumentClass();
            //设置保存路径
            string filePath = Application.StartupPath + "\\Temp\\Untitled.mxd";
            pMapDoc.New(filePath);
            pMapDoc.ReplaceContents(pMxdC);
            pMapDoc.Save(true, true);
            MessageBox.Show("地图文档保存成功!");
        }

4.另存地图文档

        private void TSMenuItem_SaveAs_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.Title = "另存为";
            saveFileDialog.FileName = "Untitled";
            saveFileDialog.DefaultExt = "mxd";
            saveFileDialog.Filter = "Map Documents(*.mxd)|*.mxd";
            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                string filePath = saveFileDialog.FileName;
                pMapDoc = new MapDocumentClass();
                pMapDoc.New(filePath);
                pMapDoc.Open(filePath,"");
                pMapDoc.Save(pMapDoc.UsesRelativePaths, true);
                MessageBox.Show("地图文档另存成功!");
            }
        }

分类:

技术点:

相关文章:

  • 2021-12-12
  • 2021-10-19
  • 2022-01-17
  • 2021-12-08
  • 2021-12-21
  • 2021-03-28
  • 2021-09-07
  • 2021-11-28
猜你喜欢
  • 2021-10-19
  • 2021-07-15
  • 2021-11-14
  • 2021-12-24
  • 2021-08-14
  • 2021-11-30
  • 2021-12-02
相关资源
相似解决方案