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