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

示例代码

 //用的0-16的数据
if (mapControlMain.ActiveView.CurrentLayer == null)
return;
IRasterLayer rasterLayer = mapControlMain.ActiveView.CurrentLayer as IRasterLayer;
if (rasterLayer == null)
return;
IRasterUniqueValueRender rasterUniqueValueRender = new PIE.Carto.RasterUniqueValueRender();
//唯一值对象
IUniqueValues uniqueValues = new UniqueValues();
uniqueValues.Clear();
//颜色对象
IList<Color> colors = new List<Color>();
Random rd = new Random(); for(int i=;i<;i++)
{
colors.Add(Color.FromArgb(rd.Next(, ), rd.Next(, ), rd.Next(, )));
rasterUniqueValueRender.SetLabel(i, "数值" + i.ToString());
uniqueValues.Add(i, );
} //设置RasterUniqueValueRender
rasterUniqueValueRender.ClassColors = colors;
rasterUniqueValueRender.UniqueValues = uniqueValues;
rasterUniqueValueRender.SetBandIndex(); //设置要唯一值渲染的波段索引号 //设置rasterRender
IRasterRender rasterRender = rasterUniqueValueRender as IRasterRender;
rasterLayer.Render = rasterRender;
// 添加图层到地图并刷新
mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);

2.4. 示例截图

PIE SDK栅格数据唯一值渲染-LMLPHP

05-20 22:21