分級渲染是矢量的一種數據表達方式。經過選取一個字段,並根據實際須要對字段的數據進行分級,並對每一級設置不一樣的符號,已達到區分顯示的效果。ide
第一步spa |
實例化矢量分級渲染對象code |
第二步視頻 |
設置分級渲染的字段對象 |
第三步blog |
設置分級數教程 |
第四步接口 |
設置不一樣分級的值及對應的符號ip |
第五步ci |
矢量渲染器接口轉換 |
第六步 |
矢量圖層渲染賦值 |
接口/類 |
方法 |
說明 |
Carto. IFeatureClassBreaksRender |
Field |
分級字段 |
ClassCount |
分級數 |
|
SetBreak () |
設置分級對應數值 |
|
SetSymbol() |
設置不一樣級別對應的符號 |
項目路徑 |
百度雲盤地址下/PIE示例程序/07圖層渲染/02.矢量分級渲染 |
數據路徑 |
百度雲盤地址下/PIE示例數據/矢量數據/Shape/省級行政區.shp |
視頻路徑 |
百度雲盤地址下/PIE視頻教程/07圖層渲染/02.矢量分級渲染.avi |
示例代碼 |
|
1 /// <summary> 2 /// 分級渲染方法 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void toolStripButton_Classify_Click(object sender, EventArgs e) 7 { 8 if (mapControlMain.ActiveView.CurrentLayer == null) return; 9 IFeatureLayer featureLayer = mapControlMain.ActiveView.CurrentLayer as IFeatureLayer; 10 if (featureLayer == null) return; 11 12 //一、分級字段,根據實際狀況進行修改 13 string classifyField ="Total_Coll"; 14 //建立FeatureClassBreaksRender,設置參數 15 IFeatureClassBreaksRender featureClassBreaksRender = new FeatureClassBreaksRender(); 16 featureClassBreaksRender.Field = classifyField; //設置渲染字段 17 featureClassBreaksRender.ClassCount = 3;//設置分級數 18 featureClassBreaksRender.SortClassesAscending = true; 19 20 //分級數、分級的值,根據實際狀況自定義修改便可 21 //二、設置分級級別 22 featureClassBreaksRender.SetBreak(0, 20); 23 featureClassBreaksRender.SetBreak(1, 40); 24 featureClassBreaksRender.SetBreak(2, 70); 25 26 //三、 定義簡單填充符號 27 IFillSymbol fillSymbol0 = new SimpleFillSymbol(); 28 fillSymbol0.Color = Color.FromArgb(255, 0, 0); 29 IFillSymbol fillSymbol1 = new SimpleFillSymbol(); 30 fillSymbol1.Color = Color.FromArgb(0, 255, 0); 31 IFillSymbol fillSymbol2 = new SimpleFillSymbol(); 32 fillSymbol2.Color = Color.FromArgb(0, 0, 255); 33 34 //設置分級符號 35 featureClassBreaksRender.SetSymbol(0, fillSymbol0); 36 featureClassBreaksRender.SetSymbol(1, fillSymbol1); 37 featureClassBreaksRender.SetSymbol(2, fillSymbol2); 38 39 //四、設置分級標籤 40 featureClassBreaksRender.SetLabel(0, "第一級"); 41 featureClassBreaksRender.SetLabel(1, "第二級"); 42 featureClassBreaksRender.SetLabel(2, "第三級"); 43 44 //五、進行渲染並刷 新 45 featureLayer.Render = featureClassBreaksRender as IFeatureRender; 46 mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll); 47 } |