PIE SDK對數據的符號化分爲矢量數據渲染和柵格數據渲染兩大類。ide
目前PIE SDK中針對矢量數據渲染包括簡單渲染、惟一值渲染、分級渲染、自定義渲染;針對柵格數據渲染包括拉伸渲染、RGB渲染、分級渲染、惟一值渲染。spa
簡單渲染是PIE SDK針對矢量數據的默認渲染方案,打開一個FeatureLayer的時候,若是沒有給FeatureLayer設置Render屬性。那麼使用的就是簡單渲染。簡單渲染對整個圖層中的全部要素使用同一種方式顯示。code
第一步視頻 |
建立簡單渲染對象。對象 |
第二步blog |
根據圖層的類型,實例化不一樣的符號,設置符號對象的相應屬性教程 |
第三步接口 |
矢量渲染器接口轉換ci |
第四步event |
矢量圖層渲染賦值 |
接口/類 |
方法/屬性 |
說明 |
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 |
設置或獲取填充輪廓線的樣式 |
項目路徑 |
百度雲盤地址下/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); |