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


 

1. 功能簡介

    通過PIE SDK加載圖層后,會默認的賦值給數據一個渲染。當用戶重新給數據賦值Render或改變數據顯示效果時,會觸發渲染變化事件。

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

2. 功能實現說明

2.1. 實現思路及原理說明

第一步

柵格圖層接口轉換至ILayerEvents

第二步

OnRenderChanged進行事件綁定,以達到監聽目的。

2.2.  核心接口與方法

接口/類

方法

說明

Carto. ILayerEvents

OnRenderChanged

渲染變化事件

2.3. 示例代碼

項目路徑

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

數據路徑

百度雲盤地址下/PIE示例數據/柵格數據/01.GF1/ GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.tif

視頻路徑

百百度雲盤地址下/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.  示例截圖

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com