PIE SDK矢量分级渲染

 

1. 功能简介

    分级渲染是矢量的一种数据表达方式。通过选取一个字段,并根据实际需要对字段的数据进行分级,并对每一级设置不同的符号,已达到区分显示的效果。

2. 功能实现说明

2.1. 实现思路及原理说明

第一步

实例化矢量分级渲染对象

第二步

设置分级渲染的字段

第三步

设置分级数

第四步

设置不同分级的值及对应的符号

第五步

矢量渲染器接口转换

第六步

矢量图层渲染赋值

2.2.  核心接口与方法

接口/类

方法

说明

 

 

Carto. IFeatureClassBreaksRender

Field

分级字段

ClassCount

分级数

SetBreak ()

设置分级对应数值

SetSymbol()

设置不同级别对应的符号

2.3. 示例代码

项目路径

百度云盘地址下/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     //1、分级字段,根据实际情况进行修改
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     //2、设置分级级别
22     featureClassBreaksRender.SetBreak(0, 20);
23     featureClassBreaksRender.SetBreak(1, 40);
24     featureClassBreaksRender.SetBreak(2, 70);
25 
26     //3、 定义简单填充符号
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     //4、设置分级标签
40     featureClassBreaksRender.SetLabel(0, "第一级");
41     featureClassBreaksRender.SetLabel(1, "第二级");
42     featureClassBreaksRender.SetLabel(2, "第三级");
43 
44     //5、进行渲染并刷  新
45     featureLayer.Render = featureClassBreaksRender as IFeatureRender;
46     mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
47 }
View Code

2.4. 示例截图

原文地址:https://www.cnblogs.com/PIESat/p/10167182.html