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

     

  • 相关阅读:
    IOS中NSUserDefaults的用法(轻量级本地数据存储)
    ios:Failed to instantiate the default view controller for UIMainStoryboardFile 'Main'
    NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)"
    使用AFNetworking 报错提示
    对比iOS网络组件:AFNetworking VS ASIHTTPRequest(转载)
    iOS
    如何理解语言的跨平台性
    R语言演示功能
    R 字符串处理函数
    来自 Google 的 R 语言编码风格指南
  • 原文地址:https://www.cnblogs.com/PIESat/p/10168098.html
Copyright © 2011-2022 走看看