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 } |