PIE SDK矢量分级符号渲染

 

1.功能简介

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

2.功能实现说明

矢量分级符号渲染功能通过调用算法实现。

2.1实现思路及原理说明

第一步

实例化矢量分级渲染对象

第二步

设置背景渲染样式

第三步

设计分级渲染字段

第四步

设计不同分级的值及对应的符号样式

第五步

矢量渲染器接口转换

第六步

矢量图层渲染赋值

2.2核心接口与方法

接口/类 方法 说明

Carto.IFeatureGraduatedSymbolsRender

SetField

分级字段

PolygonSymbol

设置背景面符号

SetBreak

设置分级断点

SetSymbol

设置不同级别对应的符号

MinimumBreak

设置最小分级值

SetParamer

设置参数

2.3示例代码

数据路径 SDK安装目录下/Data/基础矢量/行政区划/面/省级行政区.shp 
示例代码
 1 private void graduatedSymbolToolStripMenuItem_Click(object sender, EventArgs e)
 2         {
 3             IFeatureLayer featureLayer = mapctrl.ActiveView.CurrentLayer as IFeatureLayer;
 4             IFeatureGraduatedSymbolsRender render = new FeatureGraduatedSymbolsRender();
 5             render.SetField("GDP_2022", "<PERCENT OF TOTAL>");
 6 
 7             // 设置背景面符号
 8             IFillSymbol fillSym1 = new SimpleFillSymbol();
 9             render.PolygonSymbol = fillSym1;
10 
11             // 设置分级断点
12             render.SetBreak(0, 30000);//第一级
13             render.SetBreak(1, 60000);//第二级
14             render.SetBreak(2, 130000);//第三级
15 
16             // 设置分级样式
17             IMarkerSymbol symbol0 = new SimpleMarkerSymbol();
18             symbol0.Size = 10;
19             symbol0.Color = Color.FromArgb(255, 0, 0);
20             IMarkerSymbol symbol1 = new SimpleMarkerSymbol();
21             symbol1.Size = 15;
22             symbol1.Color = Color.FromArgb(0, 255, 0);
23             IMarkerSymbol symbol2 = new SimpleMarkerSymbol();
24             symbol2.Size = 20;
25             symbol2.Color = Color.FromArgb(0, 0, 255);
26 
27             render.SetSymbol(0, symbol0);
28             render.SetSymbol(1, symbol1);
29             render.SetSymbol(2, symbol2);
30 
31             // 设置分级标签
32             render.SetLabel(0, "第一级");
33             render.SetLabel(1, "第二级");
34             render.SetLabel(2, "第三级");
35 
36             render.MinimumBreak = 0;
37             // 设置参数
38             render.SetParamer(138, "<PERCENT OF TOTAL>");
39             //将render对象跟数据关联
40             IFeatureRender FeatureRender = render as IFeatureRender;
41             featureLayer.Render = FeatureRender;
42             mapctrl.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
43         }
View Code

2.4示例截图

 

 

posted @ 2023-03-30 17:42  PIESAT  阅读(36)  评论(0编辑  收藏  举报