PIE SDK专题制图打开模板

 

1.    功能简介

    在PIE SDK中,所有的制图元素、视图范围以及排版等都可以保存成一个模板,以供多次重复使用。使用时只需要打开该模板,加载相应数据,就可以直接出图了,省去了重复制作图幅的麻烦,方便快捷。

     每个地图模板都是一个地图文档(PmdContents),它被保存为*.pmd文件。

      

       [模板文件]                   [植被指数模板]

     

2. 功能实现说明

2.1打开模板

       在PIE中,每个显示的地图都是一个地图文档(PmdContents),它可以保存为*.pmd文件。用IMapDocument接口的Open方法可以直接打开地图文档。另外我们还可以从地图文档中获得制图对象。

2.2 实现思路及原理说明

第一步

选择模板文件

第二步

创建一个mapDocument,并打开(open)模板文件

第三步

调用IPageLayoutControl的LoadPmdFile方法

第四步

刷新视图

 

2.3 核心接口与方法

接口/类

方法

说明

MapDocument

Open ()

打开一个地图文档

IPageLayoutControl

LoadPmdFile()

加载地图文档

 

2.4示例代码

      项目路径

百度云盘地址下/PIE示例程序/09.专题制图/01打开模板

代码位置

FormPagelayoutDemo. barButtonItem_Open_ItemClick方法

视频路径

百度云盘地址下/PIE视频教程/09.专题制图/01打开模板.avi

示例代码

 1 /// <summary>
 2 /// 打开地图工程
 3 /// </summary>
 4 private void OpenPmd()
 5 {
 6     //获取模板路径
 7     OpenFileDialog openFileDialog = new OpenFileDialog();
 8     openFileDialog.Title = "请选择要打开的地图文档:";
 9     openFileDialog.Multiselect = false;
10     openFileDialog.Filter = "PMD|*.pmd";
11     if (openFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
12     string pmdNewFilePath = openFileDialog.FileName;
13     if (string.IsNullOrEmpty(pmdNewFilePath)) return;
14 
15     //打开模板
16     IMapDocument newMapDocument = new MapDocument();
17     newMapDocument.Open(pmdNewFilePath);
18 
19     // 为PageLayoutControl设置PageLayout
20     IPageLayout newPageLayout = newMapDocument.GetPageLayout();
21     pageLayoutControl1.PageLayout = newPageLayout;
22 
23     // 为MapControl设置Map
24     IMap newMap = (newPageLayout as IActiveView).FocusMap;
25     mapControl1.FocusMap = newMap;
26 
27     //将mapDocument对象存入tag属性中,以备后续使用
28     (pageLayoutControl1 as Control).Tag = newMapDocument;
29 
30     // 激活并刷新控件
31     if (tabControlMain.SelectedIndex == 0)
32     {
33         pageLayoutControl1.DeActivate();
34         mapControl1.Activate();
35         mapControl1.PartialRefresh(ViewDrawPhaseType.ViewAll);
36     }
37     else
38     {
39         mapControl1.DeActivate();
40         pageLayoutControl1.Activate();
41         pageLayoutControl1.PartialRefresh(ViewDrawPhaseType.ViewAll);
42     }
43 }
View Code

 

2.5 示例截图

posted @ 2018-12-25 18:20  PIESAT  阅读(1324)  评论(0编辑  收藏  举报