AE中保存Mxd文档的几种方式

文档对象主要由IMapdocument和IMxdContents接口完成的。IMapDocument定义了操作和管理文档对象的方法和属性,包括读、写和保存一个文档文件(*.mxd)。

   public void ReplaceContents (IMxdContents pObject);保存修改;
 public void Save ( bool bUseRelativePaths,bool bCreateThumnbail);
 public void SaveAs (string sDocument,bool bUseRelativePaths,bool bCreateThumnbail);

IMxdContents接口:Provides access to members to pass data into and out off a MXD map document file. Coclasses that implement this interface can limited the implementation to one property if required.

1 新建一个Mxd空白文档:

          string path=@"f:\TEST\untitled.mxd";

            MapDocument pMapDocument = new MapDocumentClass();

            pMapDocument.New(path);

            pMapDocument.Open(path, "");

            axMapControl1.Map = pMapDocument.get_Map(0);

2 在打开一个Mxd文档进行修改、编辑再保存在原文件里面:

           IMxdContents pMxdC;

            pMxdC = axMapControl1.Map as IMxdContents;

            IMapDocument pMapDocument = new MapDocumentClass();

            pMapDocument.Open(axMapControl1.DocumentFilename, "");

            IActiveView pActiveView = axMapControl1.Map as IActiveView;

            pMapDocument.ReplaceContents(pMxdC);

            pMapDocument.Save(true, true);

3 自定义加载各种数据,也就是一开始就没有Mxd文档,之后进行修改、编辑,把当前地图保存为一个Mxd文档

          SaveFileDialog Sfd = new SaveFileDialog();

            Sfd.Title = "另存文档";

            Sfd.Filter = "(*.mxd)|*.mxd";

            Sfd.ShowDialog();

            string path = Sfd.FileName;

            IMxdContents pMxdC;

            pMxdC = axMapControl1.Map as IMxdContents;

            IMapDocument pMapDocument = new MapDocumentClass();

            pMapDocument.New(path);

            IActiveView pActiveView = axMapControl1.Map as IActiveView;

            pMapDocument.ReplaceContents(pMxdC);

            pMapDocument.Save(true, true);

posted @ 2015-11-24 15:37  JaneAi  阅读(810)  评论(0编辑  收藏  举报