PIE SDK矢量分级渲染

时间:2021-03-29 19:12:23

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. 示例截图

PIE SDK矢量分级渲染