zoukankan      html  css  js  c++  java
  • PIE SDK栅格分级渲染

     

    1.  功能简介

       栅格数据分级渲染是根据不同的分级规则,对像元值进行等级划分;并通过对每一级设置不同的显示符号和标注信息,从而达到分级显示的效果。

    2.功能实现说明

    2.1. 实现思路及原理说明

    第一步

    实例化分级渲染对象

    第二步

    初始化唯一值对象,将各级值加入到唯一值对象中

    第三步

    初始化Color列表,对每一级设置对应颜色

    第四步

    分级渲染对象属性赋值

    第五步

    栅格渲染接口转换

    第六步

    栅格图层渲染赋值

    2.2. 核心接口与方法

    接口/类

    方法

    说明

    DataSource.DatasetFactory

    OpenFeatureDataset

    打开矢量数据集

    Carto.LayerFactory

    CreateDefaultFeatureLayer

    创建矢量图层

    2.3.示例代码

    项目路径

    百度云盘地址下/PIE示例程序/07图层渲染/08.栅格分级渲染

    数据路径

    百度云盘地址下/PIE示例数据/栅格数据/ 01.GF1/GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.tif

    视频路径

    百度云盘地址下/PIE视频教程/07图层渲染/08.栅格分级渲染.avi

    示例代码

     1 /// <summary>
     2 /// 栅格分级渲染
     3 /// </summary>
     4 /// <param name="sender"></param>
     5 /// <param name="e"></param>
     6  private void toolStripButton_RasterClassifyRender_Click(object sender, EventArgs e)
     7 {
     8     if (mapControlMain.ActiveView.CurrentLayer == null) return;
     9     IRasterLayer rasterLayer = mapControlMain.ActiveView.CurrentLayer as IRasterLayer;
    10     if (rasterLayer == null)
    11         return;
    12     //1 设置分级阈值,根据实际情况进行添加
    13     IUniqueValues uniqueValues = new UniqueValues();
    14     uniqueValues.Clear();
    15     uniqueValues.Add(181, 1);
    16     uniqueValues.Add(319, 1);
    17     uniqueValues.Add(457, 1);
    18     uniqueValues.Add(595, 1);
    19     uniqueValues.Add(733, 1);
    20     uniqueValues.Add(871, 1);
    21 
    22     //2 设置色带
    23     IList<Color> colors = new List<Color>();
    24     colors.Add(Color.FromArgb(200, 210, 30));
    25     colors.Add(Color.FromArgb(20, 150, 30));
    26     colors.Add(Color.FromArgb(50, 210, 160));
    27     colors.Add(Color.FromArgb(140, 110, 25));
    28     colors.Add(Color.FromArgb(100, 20, 10));
    29     colors.Add(Color.FromArgb(84, 110, 240));
    30 
    31     //3 RasterClassifyColorRampRender分级渲染
    32     IRasterClassifyColorRampRender rClassifyColorRampRender = new RasterClassifyColorRampRender();
    33     rClassifyColorRampRender.ClassColors = colors;
    34 
    35     rClassifyColorRampRender.SetBandIndex(0);
    36     rClassifyColorRampRender.UniqueValues = uniqueValues;
    37 
    38     //4 设置备注信息(可以自定义备注信息)
    39     IList<string> listLabel = new List<string>();
    40     int count = uniqueValues.GetCount();
    41     string beginLabel = "Min";
    42     string lastLabel = "";
    43     for (int i = 0; i < count; i++)
    44     {
    45         if (i - 1 >= 0)
    46         {
    47             beginLabel = uniqueValues.GetUniqueValue(i - 1).ToString();
    48         }
    49         lastLabel = uniqueValues.GetUniqueValue(i).ToString();
    50 string labelInfo = string.Format("{0}-{1}", beginLabel,lastLabel);
    51         listLabel.Add(labelInfo);
    52     }
    53     rClassifyColorRampRender.Labels = listLabel;
    54 
    55     //设置rasterRender
    56     IRasterRender rasterRender = rClassifyColorRampRender as IRasterRender;
    57     rasterLayer.Render = rasterRender;
    58     mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
    59 }
    View Code

    2.4. 示例截图

     

  • 相关阅读:
    Atitit 趋势管理之道 attilax著
    Atitit 循环处理的新特性 for...else...
    Atitit 2017年的技术趋势与未来的大技术趋势
    atitit 用什么样的维度看问题.docx 如何了解 看待xxx
    atitit prj mnrs 项目中的几种经理角色.docx
    Atitit IT办公场所以及度假村以及网点以及租房点建设之道 attilax总结
    Atitit 工具选型的因素与方法 attilax总结
    Atitit.团队文化建设影响组织的的一些原理 法则 定理 效应 p826.v4
    Atiitt 管理方面的误区总结 attilax总结
    Atitit 未来趋势把控的书籍 attilax总结 v3
  • 原文地址:https://www.cnblogs.com/PIESat/p/10167441.html
Copyright © 2011-2022 走看看