PIE SDK栅格数据唯一值渲染

 

1. 功能简介

    栅格数据唯一值渲染,是以像元为单位,不同的像元值设置不同的颜色,从而达到唯一值显示的效果。

2. 功能实现说明

2.1. 实现思路及原理说明

第一步

实例化唯一值渲染对象

第二步

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

第三步

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

第四步

唯一值渲染对象属性赋值,包括唯一值、颜色、波段索引

第五步

栅格渲染接口转换

第六步

栅格图层渲染赋值

2.2. 核心接口与方法

接口/类

方法

说明

 

Carto. IRasterUniqueValueRender

ClassColors

颜色属性

UniqueValues

唯一值属性

SetBandIndex()

设置分级波段索引

Carto. IUniqueValues

Add

添加唯一值

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/07图层渲染/09.栅格唯一值渲染

数据路径

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

视频路径

百度云盘地址下/PIE视频教程/07图层渲染/09.栅格唯一值渲染.avi

示例代码

 1 //用的0-16的数据
 2     if (mapControlMain.ActiveView.CurrentLayer == null)
 3         return;
 4     IRasterLayer rasterLayer = mapControlMain.ActiveView.CurrentLayer as IRasterLayer;
 5     if (rasterLayer == null)
 6         return;
 7 IRasterUniqueValueRender rasterUniqueValueRender = new PIE.Carto.RasterUniqueValueRender();
 8 //唯一值对象
 9     IUniqueValues uniqueValues = new UniqueValues();
10 uniqueValues.Clear();
11 //颜色对象
12     IList<Color> colors = new List<Color>();
13     Random rd = new Random();
14             
15     for(int i=0;i<17;i++)
16     {
17         colors.Add(Color.FromArgb(rd.Next(1, 255), rd.Next(1, 255), rd.Next(1, 255)));
18         rasterUniqueValueRender.SetLabel(i, "数值" + i.ToString());
19         uniqueValues.Add(i, 1);
20     }
21 
22     //设置RasterUniqueValueRender
23     rasterUniqueValueRender.ClassColors = colors;
24     rasterUniqueValueRender.UniqueValues = uniqueValues;
25     rasterUniqueValueRender.SetBandIndex(0); //设置要唯一值渲染的波段索引号
26 
27     //设置rasterRender
28     IRasterRender rasterRender = rasterUniqueValueRender as IRasterRender;
29     rasterLayer.Render = rasterRender;
30 // 添加图层到地图并刷新
31  mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
View Code

2.4. 示例截图

 

原文地址:https://www.cnblogs.com/PIESat/p/10167468.html