PIE SDK地圖範圍設置和圖層事件監聽

 

1. 功能簡介

     地圖範圍設置的監聽就是經過IMapControlEvents接口對地圖的視圖範圍更新或者地圖的分辨率發生變化進行監聽,而後作出相應的操做。ide

    圖層事件的監聽就是經過IActiveViewEvents接口對地圖的添加,刪除和移動圖層操做進行監聽,而後作出相應操做,例如鷹眼圖,當監聽主地圖添加一個新圖層數據時,鷹眼圖就能夠經過將新圖層顯示在鷹眼圖中。函數

2. 功能實現說明

2.1. 實現思路及原理說明

第一步spa

綁定地圖視圖事件,添加地圖控制的監聽事件3d

第二步code

根據不一樣的事件進行不一樣的功能操做orm

2.2. 核心接口與方法

接口/類視頻

方法/屬性blog

說明排序

 

PIE.Carto.IActiveViewEvents教程

OnLayerAdded

圖層添加事件

OnLayerDeleted

圖層刪除事件

OnLayerReordered

圖層排序事件

PIE.AxControls.IMapControlEvents

OnExtentUpdated

視圖更新事件

OnResolutionUpdated

視圖分辨率更新事件

2.3. 示例代碼

項目路徑

百度雲盤地址下/PIE示例程序/02.地圖操做/02.地圖圖層控制/PIEMapLayerControlDemo

數據路徑

百度雲盤地址下/PIE示例數據/柵格數據/04.World/World.tif

視頻路徑

百度雲盤地址下/PIE視頻教程/02.地圖操做/03.地圖範圍設置和圖層事件監聽.avi

示例代碼

 1         /// <summary>
 2         /// 構造函數
 3         /// </summary>
 4         public FormMain()
 5         {
 6             InitializeComponent();
 7             tocControlMain.SetBuddyControl(mapControlMain as PIE.Carto.IPmdContents);        
 8             //圖層控制監聽事件
 9             IActiveViewEvents activeViewEvents = mapControlMain.FocusMap as PIE.Carto.IActiveViewEvents;
10             activeViewEvents.OnLayerAdded += MapControl_OnLayerAdded;//圖層添加事件
11             activeViewEvents.OnLayerDeleted += MapControl_OnLayerDeleted;//圖層刪除事件
12             activeViewEvents.OnLayerReordered+=MapControl_OnLayerReordered;  //圖層排序事件      
13           //地圖範圍變化監聽事件
14 PIE.AxControls.IMapControlEvents mapControlEvent= mapControlMain as PIE.AxControls.IMapControlEvents; mapControlEvent.OnExtentUpdated+=mapControlEvent_OnExtentUpdated;//地圖範圍變化事件
15             mapControlEvent.OnResolutionUpdated+=mapControlEvent_OnResolutionUpdated;//地圖分辨率更新事件                 
16  }
17 
18  /// <summary>
19         /// 圖層添加事件(圖層添加後會觸發該事件)
20         /// </summary>
21         /// <param name="layer"></param>
22         private void MapControl_OnLayerAdded(ILayer layer)
23         {
24             string str = string.Format("添加{0}圖層", layer.Name);
25             MessageBox.Show(str,"提示");
26         }
27         /// <summary>
28         /// 圖層移除事件 (地圖刪除後會觸發該事件)
29         /// </summary>
30         /// <param name="layer"></param>
31         private void MapControl_OnLayerDeleted(ILayer layer)
32         {
33             string str = string.Format("刪除{0}圖層", layer.Name);
34             MessageBox.Show(str, "提示");
35         }
36         /// <summary>
37         /// 圖層排序事件(當圖層移動後會觸發該事件)
38         /// </summary>
39         /// <param name="layer"></param>
40         private void MapControl_OnLayerReordered(ILayer layer, int index)
41         {
42             string str = string.Format("移動{0}圖層,到索引爲{1}的位置", layer.Name,index);
43             MessageBox.Show(str, "提示");
44         }
45        /// <summary>
46         /// 地圖範圍發生變化事件
47         /// </summary>
48         /// <param name="sender"></param>
49         /// <param name="sizeChanged"></param>
50         /// <param name="newEnvelope"></param>
51         private void mapControlEvent_OnExtentUpdated(object sender, bool sizeChanged, IEnvelope newEnvelope)
52         {
53             MessageBox.Show("地圖範圍發生變化");
54         }
55         /// <summary>
56         /// 地圖分辨率發生變化事件
57         /// </summary>
58         /// <param name="displayTransformation"></param>
59         private void mapControlEvent_OnResolutionUpdated(IDisplayTransformation displayTransformation)
60         {
61             MessageBox.Show("地圖分辨率發生變化");
62         }
View Code

2.4. 示例截圖

 

 

 

 

相關文章
相關標籤/搜索