柵格數據惟一值渲染,是以像元爲單位,不一樣的像元值設置不一樣的顏色,從而達到惟一值顯示的效果。dom
第一步ide |
實例化惟一值渲染對象spa |
第二步code |
初始化惟一值對象,將各級值加入到惟一值對象中視頻 |
第三步對象 |
初始化Color列表,對每個值設置對應顏色blog |
第四步教程 |
惟一值渲染對象屬性賦值,包括惟一值、顏色、波段索引索引 |
第五步接口 |
柵格渲染接口轉換 |
第六步 |
柵格圖層渲染賦值 |
接口/類 |
方法 |
說明 |
Carto. IRasterUniqueValueRender |
ClassColors |
顏色屬性 |
UniqueValues |
惟一值屬性 |
|
SetBandIndex() |
設置分級波段索引 |
|
Carto. IUniqueValues |
Add |
添加惟一值 |
項目路徑 |
百度雲盤地址下/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); |