1. 程式人生 > >PIE SDK柵格資料唯一值渲染

PIE SDK柵格資料唯一值渲染

 

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 示例截圖