zoukankan      html  css  js  c++  java
  • 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.  示例截图

     

  • 相关阅读:
    常用电子元器件及应用
    局域网传输-LED灯搭建局域网:数据传输可达每秒3Gb
    硬件设计原理图Checklist 参考案例二 【转载】
    基于LiFi可见光通信技术的研究及应用转化调查
    T&F 圆桌:儿童智能玩具离我们还有多远?
    一座金矿:数千亿规模智能玩具市场
    【Java】+ 图片与base64互转 + 字符串与base64互转
    【Java】+ 【wss】 + WebSocketClient
    【IDEA】+SVN
    【杂项】+事件管理之时间4象限
  • 原文地址:https://www.cnblogs.com/PIESat/p/10168098.html
Copyright © 2011-2022 走看看