PIE SDK專題製圖切換模板

 

1.    功能簡介

    專題圖是突出且較完備的表示一種或幾種天然或社會經濟現象,從而使地圖起到專門化的做用。與普通地圖不一樣,專題圖的表示內容豐富多彩,多種多樣。在實際業務應用中常常會用同一張地圖出不少個專題圖,爲此PIESDK提供了不一樣模板之間切換的功能。ide

2. 功能實現說明

2.1.切換模板

       切換模板最主要的就是地圖的克隆,以及地圖文檔的釋放與加載。spa

2.2. 實現思路及原理說明

第一步code

選擇模板文件orm

第二步視頻

建立一個mapDocument,並打開模板文件blog

第三步接口

克隆當前視圖中的Map,並獲取模板的PageLayoutci

第四步文檔

調用IPageLayout的ReplaceMaps方法替換爲當前地圖string

第五步

將IPageLayoutControl.PageLayout屬性替換爲新的PageLayout

第六步

釋放原來的地圖文檔

第七步

刷新視圖

 

2.3 . 核心接口與方法

接口/類

方法

說明

IMapDocument

Save ()

保存地圖文檔

IPageLayout

ReplaceMaps()

替換地圖

 

2.4. 示例代碼

       項目路徑

百度雲盤地址下/PIE示例程序/09.專題製圖//04切換模板

代碼位置

FormPagelayoutDemo. barButtonItem_change_ItemClick方法

視頻位置

百度雲盤地址下/PIE示例程序/09.專題製圖/04切換模板.avi

示例代碼

 1          /// <summary>
 2         /// 切換模板
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>       
 6         private void barButtonItem_change_ItemClick(object sender, ItemClickEventArgs e)
 7         {
 8              //1.選擇模板文件
 9             OpenFileDialog openFileDialog = new OpenFileDialog();
10             openFileDialog.Title = "請選擇要打開的模板:";
11             openFileDialog.Multiselect = false;
12             openFileDialog.Filter = "pmd|*.pmd|All Files|*.*";
13             if (openFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
14 
15             string filePath = openFileDialog.FileName;
16             string fileName = System.IO.Path.GetFileNameWithoutExtension(filePath);
17             //2.打開模板
18             IMapDocument mapDocument = new MapDocument();
19             if (!mapDocument.Open(filePath)) return;
20  
21             //克隆map;
22             IMap map = m_pageLayoutControl.FocusMap.Clone();
23             IList<IMap> listMap = new List<IMap>();
24             listMap.Add(map);
25             //替換地圖
26             mapDocument.GetPageLayout().ReplaceMaps(listMap);
27             m_pageLayoutControl.PageLayout = mapDocument.GetPageLayout();
28             //釋放地圖文檔
29             ((m_pageLayoutControl as Control).Tag as IDisposable).Dispose();
30             (m_pageLayoutControl as Control).Tag = mapDocument;           m_pageLayoutControl.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
31         }
View Code

 

2.5. 示例截圖

相關文章
相關標籤/搜索