• 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.  示例截图

     

  • 相关阅读:
    java 整合redis缓存 SSM 后台框架 rest接口 shiro druid maven bootstrap html5
    《将博客搬至CSDN》
    前后端分离-定义响应格式化数据
    微服务-Springboot+Redis缓存管理接口代码实现
    java语法
    java后台树形结构展示---懒加载
    后端处理前端传过来的日期的两种方式
    汉字转拼音工具类
    Mybatis的小技巧
    调用高德API,通过输入的地址,如省份、市、区获取经纬度 ,通过输入的经纬度,获取区域详情
  • 原文地址:https://www.cnblogs.com/PIESat/p/10168098.html
Copyright © 2020-2023  润新知