1. 功能简介
分级渲染是矢量的一种数据表达方式。通过选取一个字段,并根据实际需要对字段的数据进行分级,并对每一级设置不同的符号,已达到区分显示的效果。
2. 功能实现说明
2.1. 实现思路及原理说明
第一步
|
实例化矢量分级渲染对象
|
第二步
|
设置分级渲染的字段
|
第三步
|
设置分级数
|
第四步
|
设置不同分级的值及对应的符号
|
第五步
|
矢量渲染器接口转换
|
第六步
|
矢量图层渲染赋值
|
2.2. 核心接口与方法
接口/类
|
方法
|
说明
|
Carto. IFeatureClassBreaksRender
|
Field
|
分级字段
|
ClassCount
|
分级数
|
SetBreak ()
|
设置分级对应数值
|
SetSymbol()
|
设置不同级别对应的符号
|
2.3. 示例代码
项目路径
|
百度云盘地址下/PIE示例程序/07图层渲染/02.矢量分级渲染
|
数据路径
|
百度云盘地址下/PIE示例数据/矢量数据/Shape/省级行政区.shp
|
视频路径
|
百度云盘地址下/PIE视频教程/07图层渲染/02.矢量分级渲染.avi
|
示例代码
|
/// <summary>
/// 分级渲染方法
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_Classify_Click(object sender, EventArgs e)
{
if (mapControlMain.ActiveView.CurrentLayer == null) return;
IFeatureLayer featureLayer = mapControlMain.ActiveView.CurrentLayer as IFeatureLayer;
if (featureLayer == null) return;
//1、分级字段,根据实际情况进行修改
string classifyField ="Total_Coll";
//创建FeatureClassBreaksRender,设置参数
IFeatureClassBreaksRender featureClassBreaksRender = new FeatureClassBreaksRender();
featureClassBreaksRender.Field = classifyField; //设置渲染字段
featureClassBreaksRender.ClassCount = ;//设置分级数
featureClassBreaksRender.SortClassesAscending = true;
//分级数、分级的值,根据实际情况自定义修改即可
//2、设置分级级别
featureClassBreaksRender.SetBreak(, );
featureClassBreaksRender.SetBreak(, );
featureClassBreaksRender.SetBreak(, );
//3、 定义简单填充符号
IFillSymbol fillSymbol0 = new SimpleFillSymbol();
fillSymbol0.Color = Color.FromArgb(, , );
IFillSymbol fillSymbol1 = new SimpleFillSymbol();
fillSymbol1.Color = Color.FromArgb(, , );
IFillSymbol fillSymbol2 = new SimpleFillSymbol();
fillSymbol2.Color = Color.FromArgb(, , );
//设置分级符号
featureClassBreaksRender.SetSymbol(, fillSymbol0);
featureClassBreaksRender.SetSymbol(, fillSymbol1);
featureClassBreaksRender.SetSymbol(, fillSymbol2);
//4、设置分级标签
featureClassBreaksRender.SetLabel(, "第一级");
featureClassBreaksRender.SetLabel(, "第二级");
featureClassBreaksRender.SetLabel(, "第三级");
//5、进行渲染并刷 新
featureLayer.Render = featureClassBreaksRender as IFeatureRender;
mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}
|
2.4. 示例截图