柵格數據分級渲染是根據不一樣的分級規則,對像元值進行等級劃分;並經過對每一級設置不一樣的顯示符號和標註信息,從而達到分級顯示的效果。ide
第一步spa |
實例化分級渲染對象code |
第二步orm |
初始化惟一值對象,將各級值加入到惟一值對象中視頻 |
第三步對象 |
初始化Color列表,對每一級設置對應顏色blog |
第四步教程 |
分級渲染對象屬性賦值接口 |
第五步ip |
柵格渲染接口轉換 |
第六步 |
柵格圖層渲染賦值 |
接口/類 |
方法 |
說明 |
DataSource.DatasetFactory |
OpenFeatureDataset |
打開矢量數據集 |
Carto.LayerFactory |
CreateDefaultFeatureLayer |
建立矢量圖層 |
項目路徑 |
百度雲盤地址下/PIE示例程序/07圖層渲染/08.柵格分級渲染 |
數據路徑 |
百度雲盤地址下/PIE示例數據/柵格數據/ 01.GF1/GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.tif |
視頻路徑 |
百度雲盤地址下/PIE視頻教程/07圖層渲染/08.柵格分級渲染.avi |
示例代碼 |
|
1 /// <summary> 2 /// 柵格分級渲染 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void toolStripButton_RasterClassifyRender_Click(object sender, EventArgs e) 7 { 8 if (mapControlMain.ActiveView.CurrentLayer == null) return; 9 IRasterLayer rasterLayer = mapControlMain.ActiveView.CurrentLayer as IRasterLayer; 10 if (rasterLayer == null) 11 return; 12 //1 設置分級閾值,根據實際狀況進行添加 13 IUniqueValues uniqueValues = new UniqueValues(); 14 uniqueValues.Clear(); 15 uniqueValues.Add(181, 1); 16 uniqueValues.Add(319, 1); 17 uniqueValues.Add(457, 1); 18 uniqueValues.Add(595, 1); 19 uniqueValues.Add(733, 1); 20 uniqueValues.Add(871, 1); 21 22 //2 設置色帶 23 IList<Color> colors = new List<Color>(); 24 colors.Add(Color.FromArgb(200, 210, 30)); 25 colors.Add(Color.FromArgb(20, 150, 30)); 26 colors.Add(Color.FromArgb(50, 210, 160)); 27 colors.Add(Color.FromArgb(140, 110, 25)); 28 colors.Add(Color.FromArgb(100, 20, 10)); 29 colors.Add(Color.FromArgb(84, 110, 240)); 30 31 //3 RasterClassifyColorRampRender分級渲染 32 IRasterClassifyColorRampRender rClassifyColorRampRender = new RasterClassifyColorRampRender(); 33 rClassifyColorRampRender.ClassColors = colors; 34 35 rClassifyColorRampRender.SetBandIndex(0); 36 rClassifyColorRampRender.UniqueValues = uniqueValues; 37 38 //4 設置備註信息(能夠自定義備註信息) 39 IList<string> listLabel = new List<string>(); 40 int count = uniqueValues.GetCount(); 41 string beginLabel = "Min"; 42 string lastLabel = ""; 43 for (int i = 0; i < count; i++) 44 { 45 if (i - 1 >= 0) 46 { 47 beginLabel = uniqueValues.GetUniqueValue(i - 1).ToString(); 48 } 49 lastLabel = uniqueValues.GetUniqueValue(i).ToString(); 50 string labelInfo = string.Format("{0}-{1}", beginLabel,lastLabel); 51 listLabel.Add(labelInfo); 52 } 53 rClassifyColorRampRender.Labels = listLabel; 54 55 //設置rasterRender 56 IRasterRender rasterRender = rClassifyColorRampRender as IRasterRender; 57 rasterLayer.Render = rasterRender; 58 mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll); 59 } |