PIE SDK柵格分級渲染

 

1.  功能簡介

   柵格數據分級渲染是根據不一樣的分級規則,對像元值進行等級劃分;並經過對每一級設置不一樣的顯示符號和標註信息,從而達到分級顯示的效果。ide

2.功能實現說明

2.1. 實現思路及原理說明

第一步spa

實例化分級渲染對象code

第二步orm

初始化惟一值對象,將各級值加入到惟一值對象中視頻

第三步對象

初始化Color列表,對每一級設置對應顏色blog

第四步教程

分級渲染對象屬性賦值接口

第五步ip

柵格渲染接口轉換

第六步

柵格圖層渲染賦值

2.2. 核心接口與方法

接口/類

方法

說明

DataSource.DatasetFactory

OpenFeatureDataset

打開矢量數據集

Carto.LayerFactory

CreateDefaultFeatureLayer

建立矢量圖層

2.3.示例代碼

項目路徑

百度雲盤地址下/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 }
View Code

2.4. 示例截圖

 

相關文章
相關標籤/搜索