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

     

  • 相关阅读:
    P4047 部落划分
    P1440 求m区间的最小值
    P2880 平衡的阵容
    P2700 逐个击破
    P2814 家谱 map模版
    P4403 秦腾与教学评估
    无油无糖低脂酸奶芒果蛋糕
    紫薯铜锣烧
    Spring In Action ③
    Spring In Action ②
  • 原文地址:https://www.cnblogs.com/PIESat/p/10167441.html
Copyright © 2020-2023  润新知