1. 程式人生 > >PIE SDK圖層渲染變化事件監聽

PIE SDK圖層渲染變化事件監聽

 

1. 功能簡介

    通過PIE SDK載入圖層後,會預設的賦值給資料一個渲染。當用戶重新給資料賦值Render或改變資料顯示效果時,會觸發渲染變化事件。

    所謂的事件監聽是在事件觸發時,將執行使用者指定的函式或方法,已實現特定的功能。

2. 功能實現說明

2.1 實現思路及原理說明

第一步

柵格圖層介面轉換至ILayerEvents

第二步

OnRenderChanged進行事件繫結,以達到監聽目的。

2.2  核心介面與方法

介面/類

方法

說明

Carto. ILayerEvents

OnRenderChanged

渲染變化事件

2.3 示例程式碼

專案路徑

百度雲盤地址下/PIE示例程式/07圖層渲染/14.柵格渲染變化監聽

資料路徑

百度雲盤地址下/PIE示例資料/柵格資料/ GF1/

視訊路徑

百百度雲盤地址下/PIE視訊教程/07圖層渲染/14.柵格渲染變化監聽.avi

示例程式碼

 1 方法(一)渲染變化事件監聽
 2 if (mapControlMain.ActiveView.CurrentLayer == null)return;
 3 IRasterLayer pRasterLayer = mapControlMain.ActiveView.CurrentLayer as IRasterLayer;
 4     if (pRasterLayer != null
) 5 { 6 //介面轉換,新增監聽事件 7 ILayerEvents eventsListern = pRasterLayer as ILayerEvents; 8 eventsListern.OnRenderChanged -= eventsListern_OnRenderChanged; 9 eventsListern.OnRenderChanged += eventsListern_OnRenderChanged; 10 } 11 /// <summary> 12 /// 事件方法 13 /// </summary> 14 /// <param name="layer"></param> 15 void eventsListern_OnRenderChanged(ILayer layer) 16 { 17 MessageBox.Show(layer.Name + "渲染方式變化了!"); 18 } 19 20 方法(二)修改渲染方式,觸發事件 21 if (mapControlMain.ActiveView.CurrentLayer == null)return; 22 IRasterLayer pRasterLayer = mapControlMain.ActiveView.CurrentLayer as IRasterLayer; 23 if(pRasterLayer!=null) 24 { 25 IRasterRender rRender = pRasterLayer.Render; 26 IRasterStretch stretch = rRender as IRasterStretch; 27 stretch.StretchType = RasterStretchType.RasterStretch_PercentMinimumMaximum; 28 stretch.LinearStretchPercent = 2; 29 pRasterLayer.RaiseRenderChanged(); 30 mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll); 31 }
View Code

2.4  示例截圖