博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PIE SDK栅格图层渲染变化事件监听
阅读量:7220 次
发布时间:2019-06-29

本文共 1709 字,大约阅读时间需要 5 分钟。

 

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 /// 12 /// 事件方法13 /// 14 /// 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.  示例截图

 

转载于:https://www.cnblogs.com/PIESat/p/10168098.html

你可能感兴趣的文章
hdu 1531 King
查看>>
***R
查看>>
Linux 源码编译安装mysql
查看>>
取消手机端页面长按图片出现保存或者图片被打开的方法
查看>>
关于图片居中问题
查看>>
并发下的死锁问题
查看>>
Winserver下的Hyper-v “未在远程桌面会话中捕获到鼠标”
查看>>
oracle体系结构基础
查看>>
有关TCP和UDP 粘包 消息保护边界
查看>>
Mono为何能跨平台?聊聊CIL(MSIL)
查看>>
安装scrapy问题:-bash:scrapy:command not found
查看>>
CentOS7 重置root密码
查看>>
博客作业四
查看>>
Scanner 输入---从键盘输入两个数进行相加
查看>>
test
查看>>
说无可说
查看>>
mysql 语句优化
查看>>
SCP 命令参数使用详解(最详细使用指南)
查看>>
windows cmd color setup
查看>>
一些问题
查看>>