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