專題圖是突出且較完備的表示一種或幾種天然或社會經濟現象,從而使地圖起到專門化的做用。與普通地圖不一樣,專題圖的表示內容豐富多彩,多種多樣。在實際業務應用中常常會用同一張地圖出不少個專題圖,爲此PIESDK提供了不一樣模板之間切換的功能。ide
切換模板最主要的就是地圖的克隆,以及地圖文檔的釋放與加載。spa
第一步code |
選擇模板文件orm |
第二步視頻 |
建立一個mapDocument,並打開模板文件blog |
第三步接口 |
克隆當前視圖中的Map,並獲取模板的PageLayoutci |
第四步文檔 |
調用IPageLayout的ReplaceMaps方法替換爲當前地圖string |
第五步 |
將IPageLayoutControl.PageLayout屬性替換爲新的PageLayout |
第六步 |
釋放原來的地圖文檔 |
第七步 |
刷新視圖 |
接口/類 |
方法 |
說明 |
IMapDocument |
Save () |
保存地圖文檔 |
IPageLayout |
ReplaceMaps() |
替換地圖 |
項目路徑 |
百度雲盤地址下/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 } |