PIE SDK柵格資料唯一值渲染
阿新 • • 發佈:2018-12-24
1. 功能簡介
柵格資料唯一值渲染,是以像元為單位,不同的像元值設定不同的顏色,從而達到唯一值顯示的效果。
2. 功能實現說明
2.1 實現思路及原理說明
第一步 |
例項化唯一值渲染物件 |
第二步 |
初始化唯一值物件,將各級值加入到唯一值物件中 |
第三步 |
初始化Color列表,對每一個值設定對應顏色 |
第四步 |
唯一值渲染物件屬性賦值,包括唯一值、顏色、波段索引 |
第五步 |
柵格渲染介面轉換 |
第六步 |
柵格圖層渲染賦值 |
2.2 核心介面與方法
介面/類 |
方法 |
說明 |
Carto. IRasterUniqueValueRender |
ClassColors |
顏色屬性 |
UniqueValues |
唯一值屬性 |
|
SetBandIndex() |
設定分級波段索引 |
|
Carto. IUniqueValues |
Add |
新增唯一值 |
2.3 示例程式碼
專案路徑 |
百度雲盤地址下/PIE示例程式/07圖層渲染/09.柵格唯一值渲染 |
資料路徑 |
百度雲盤地址下/PIE示例資料/柵格資料/ GF1/ |
視訊路徑 |
百度雲盤地址下/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 示例截圖