PIE SDK图层渲染变化事件监听

Posted piesat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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  示例截图

技术分享图片 

以上是关于PIE SDK图层渲染变化事件监听的主要内容,如果未能解决你的问题,请参考以下文章

PIE SDK元素事件的监听

OpenLayers创建一个新的Vector图层并添加覆盖物,并监听图层事件

ArcEngine GroupLayer监听图层改变

PIE SDK矢量数据项查看

PIE SDK矢量自定义渲染

OpenLayer监听zoom缩放事件显示不同业务图层