PIE SDK矢量數據簡單渲染

 

1. 功能簡介

    PIE SDK對數據的符號化分爲矢量數據渲染和柵格數據渲染兩大類。ide

    目前PIE SDK中針對矢量數據渲染包括簡單渲染、惟一值渲染、分級渲染、自定義渲染;針對柵格數據渲染包括拉伸渲染、RGB渲染、分級渲染、惟一值渲染。spa

    簡單渲染是PIE SDK針對矢量數據的默認渲染方案,打開一個FeatureLayer的時候,若是沒有給FeatureLayer設置Render屬性。那麼使用的就是簡單渲染。簡單渲染對整個圖層中的全部要素使用同一種方式顯示。code

2. 功能實現說明

2.1. 實現思路及原理說明

第一步視頻

建立簡單渲染對象。對象

第二步blog

根據圖層的類型,實例化不一樣的符號,設置符號對象的相應屬性教程

第三步接口

矢量渲染器接口轉換ci

第四步event

矢量圖層渲染賦值

2.2. 核心接口與方法

接口/類

方法/屬性

說明

Carto.IFeatureSimpleSymbolRender

Smbol

獲取或設置symbol

Carto.IFeatureRender

Render

設置或獲取渲染方式

 

Carto.ISimpleMarkerSymbol

Style

設置或獲取顯示的Style

Size

設置或獲取Size

Color

設置或獲取Color

 

Carto. IMarkerSymbol

Style

設置或獲取Style

Size

設置或獲取Size

Color

設置或獲取Color

 

Carto. ISimpleLineSymbol

Style

設置或獲取Style

Width

設置或獲取線的Width

Color

設置或獲取Color

 

Carto. ILineSymbol

Style

設置或獲取Style

Wdth

設置或獲取線的Width

Color

設置或獲取Color

Carto.ISimpleFillSymbol

Stytle

設置或獲取Style

Carto. IFillSymbol

OutlineSymbol

設置或獲取填充輪廓線的樣式

2.3. 示例代碼

項目路徑

百度雲盤地址下/PIE示例程序/07圖層渲染/01.矢量數據簡單渲染

數據路徑

百度雲盤地址下/PIE示例數據/矢量數據/Shape/省級行政區.shp

視頻路徑

百度雲盤地址下/PIE視頻教程/07圖層渲染/01.矢量數據簡單渲染.avi

示例代碼

 1 方法(一)
 2 //判斷當前是否有選中圖層
 3 if (mapControlMain.ActiveView.CurrentLayer == null)
 4     return;
 5 //選中的圖層是否爲矢量圖層
 6 IFeatureLayer featureLayer = mapControlMain.ActiveView.CurrentLayer as IFeatureLayer;
 7 if (featureLayer == null)
 8     return;
 9 
10 //根據點線面進行渲染
11 IFeatureSimpleSymbolRender render = new FeatureSimpleSymbolRender();//簡單渲染對象
12 GeometryType geometryType = featureLayer.FeatureClass.GetGeomType();//圖層類型
13 if (geometryType == GeometryType.GeometryPoint)
14 {
15     //簡單點符號
16     ISimpleMarkerSymbol mark = new SimpleMarkerSymbol();
17     mark.Style = SimpleMarkerStyle.SMSCross;
18 
19     IMarkerSymbol markSymbol = mark as IMarkerSymbol;
20     markSymbol.Size = 2;
21     markSymbol.Color = System.Drawing.Color.Brown;
22     render.Symbol = markSymbol as ISymbol;
23 }
24 else if (geometryType == GeometryType.GeometryPolyline)
25 {
26     //設置簡單線符號
27     ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbol();
28     simpleLineSymbol.Style = SimpleLineStyle.SLSDashDot;
29 
30     ILineSymbol lineSymbol = simpleLineSymbol as LineSymbol;
31     lineSymbol.Color = System.Drawing.Color.Red;
32     lineSymbol.Width = 2;
33     lineSymbol.Join = LineJoinStyle.LJSBevel;
34     lineSymbol.Cap = LineCapStyle.LCSRound;
35     render.Symbol = simpleLineSymbol as ISymbol;
36 }
37 else if (geometryType == GeometryType.GeometryPolygon)
38 {
39     //設置簡單線符號
40     ISimpleLineSymbol simpleLSymbol = new SimpleLineSymbol();
41     simpleLSymbol.Style = SimpleLineStyle.SLSDashDot;
42     ILineSymbol lineSymbol = simpleLSymbol as LineSymbol;
43     lineSymbol.Color = System.Drawing.Color.Red;
44     lineSymbol.Width = 2;
45     lineSymbol.Join = LineJoinStyle.LJSBevel;
46     lineSymbol.Cap = LineCapStyle.LCSRound;
47 
48     // 定義簡單填充符號
49     ISimpleFillSymbol simpleFillSymbol = new SimpleFillSymbol();
50     simpleFillSymbol.Style = SimpleFillStyle.SFSDense6Pattern;
51     IFillSymbol fillSymbol = simpleFillSymbol as FillSymbol;
52     //設置輪廓線樣式
53     fillSymbol.OutlineSymbol = lineSymbol;
54     render.Symbol = simpleFillSymbol as ISymbol;
55 }
56 //Render對象賦值
57 IFeatureRender featureRender = render as IFeatureRender;
58 featureLayer.Render = featureRender;
59 mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
View Code

2.4. 示例截圖

相關文章
相關標籤/搜索