1. 功能简介

图层的唯一值渲染即是根据矢量图层的某一个数值字段的属性值,按照值的不同大小设置不同的显示符号。属性数值相等的所有要素归为同一种类,即同一符号。

2. 功能实现说明

2.1. 实现思路及原理说明

第一步

实例化唯一值渲染对象

第二步

设置唯一值渲染字段

第三步

设置是否使用默认渲染符号

第四步

针对每一个唯一值设置对应符号及标签

第五步

矢量渲染器接口转换

第六步

矢量图层渲染赋值

2.2. 核心接口与方法

接口/类

方法/属性

说明

Carto. IFeatureUniqueValueRender

SetFields

设置渲染字段

GetSymbolMap

获得SymbolMap

SetSymbol

设置符号

SetLabel

设置备注

SetUseDefaultSymbol

设置默认符号

DefaultSymbol属性

符号

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/07图层渲染/03.矢量唯一值渲染

数据路径

百度云盘地址下/PIE示例数据/矢量数据/Shape/省级行政区.shp

视频路径

百度云盘地址下/PIE视频教程/07图层渲染/03.矢量唯一值渲染.avi

示例代码

 /// <summary>
/// 矢量唯一值渲染
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_FUnique_Click(object sender, EventArgs e)
{
//当前图层
if (mapControlMain.ActiveView.CurrentLayer == null) return;
//获取矢量图层
IFeatureLayer featureLayer = mapControlMain.ActiveView.CurrentLayer as IFeatureLayer;
if (featureLayer == null) return; //渲染代码
string fieldName = "NAME";//"ADCODE99";//获取唯一值的字段名称,根据实际需要进行修改
int filedIndex = featureLayer.FeatureClass.GetFields().GetFieldIndex(fieldName);//获取字段索引
if (filedIndex == -) return; //创建FeatureUniqueValueRender
IFeatureUniqueValueRender featureUniqueValueRender = new FeatureUniqueValueRender(); //设置渲染值段
IList<String> listFeilds = new List<String>() { fieldName };
featureUniqueValueRender.SetFields(listFeilds); //遍历矢量要素图层,读取每一个要素值
IFeatureCursor cursor = featureLayer.FeatureClass.Search(null);
IFeature feature = cursor.NextFeature();
Random rd = new Random();
while (feature != null)
{
int r, g, b;
r = (int)(rd.Next(, ));
g = (int)(rd.Next(, ));
b = (int)(rd.Next(, )); //获取字段值
string value = feature.GetValue(filedIndex).ToString();
if (!featureUniqueValueRender.GetSymbolMap().ContainsKey(value))
{
//初始化值对应的符号;本示例为面图层,生成FillSymbol
IFillSymbol fillSymbol = new SimpleFillSymbol();
fillSymbol.Color = Color.FromArgb(r, g, b); featureUniqueValueRender.SetSymbol(value, fillSymbol as ISymbol);
featureUniqueValueRender.SetLabel(value, value);
}
feature = cursor.NextFeature(); }
//*********设置默认符号,必要代码**********
IFillSymbol defaultSymbol = new SimpleFillSymbol();
defaultSymbol.Color = Color.AliceBlue;
featureUniqueValueRender.SetUseDefaultSymbol(true);
featureUniqueValueRender.DefaultSymbol = (defaultSymbol as ISymbol);
featureUniqueValueRender.DefaultLabel = ""; (cursor as IDisposable).Dispose();//释放游标
//设置featurerender
IFeatureRender featureRender = featureUniqueValueRender as IFeatureRender;
featureLayer.Render = featureRender; //视图刷新
mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}

2.4. 示例截图

PIE SDK矢量唯一值渲染的更多相关文章

  1. PIE SDK栅格数据唯一值渲染

    1. 功能简介 栅格数据唯一值渲染,是以像元为单位,不同的像元值设置不同的颜色,从而达到唯一值显示的效果. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 实例化唯一值渲染对象 第二步 初始 ...

  2. PIE SDK矢量自定义渲染

    1. 功能简介 PIE SDK中关于矢量渲染提供了多种方案,包括简单渲染.分级渲染.唯一值渲染,这几种渲染方式具有一定的通用性,可以满足用户绝大多数的需求. 当面对复杂的业务,当前渲染方案无法满足用户 ...

  3. ArcGIS api for javascript——渲染-使用唯一值渲染

    描述 本例使用唯一值渲染器来作为美国的符号.每个州有一个字符串属性"SUB_REGION"表示它的国家的地区.UniqueValueRenderer.addValue()方法被用来 ...

  4. PIE SDK矢量分级渲染

    1. 功能简介 分级渲染是矢量的一种数据表达方式.通过选取一个字段,并根据实际需要对字段的数据进行分级,并对每一级设置不同的符号,已达到区分显示的效果. 2. 功能实现说明 2.1. 实现思路及原理说 ...

  5. PIE SDK矢量透明度、标注控制

    1. 功能简介 透明度和标注是矢量图层的相关属性:图层透明值是0-100间的整数,标注是显示在地图上的文字信息,它是出图中不可或缺的重要元素.标注的样式丰富,并且放置位置灵活. 2. 功能实现说明 2 ...

  6. PIE SDK矢量数据项查看

    1. 功能简介 矢量数据由大量要素信息构成,矢量数据项查看可以看到数据的属性表,下面就基于PIE SDK,介绍矢量数据项查看功能的实现. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 加载 ...

  7. PIE SDK矢量栅格化算法

    1.算法功能简介 矢量栅格化,由矢量数据向栅格数据的转换一般比较方便.对于点.线目标,由其所在的栅格行.列数表示,对于面状目标,则需判定落人该面积内的像元.通常栅格(像元)尺寸均大于原来坐标表示的分辨 ...

  8. PIE SDK矢量点生成等值线、面

    1.算法功能简介 等值线图能直观地展示数据的变化趋势,是众多领域展示成果的重要图建之一,被广泛应用于石油勘探.矿物开采.气象预报等众多领域.等值线的绘制是指从大量采样数据中提取出具有相同值的点的信息, ...

  9. PIE SDK Alpha通道数据渲染

    1.  功能简介 在计算机图形学中,一个RGB颜色模型的真彩图形,用由红.绿.蓝三个色彩信息通道合成的,每个通道用了8位色彩深度,共计24位,包含了所有彩色信息.为实现图形的透明效果,采取在图形文件的 ...

随机推荐

  1. bootstrap三列布局

    <!DOCTYPE html><html lang="zh-cn"><head><meta charset="utf-8&quo ...

  2. LIRE教程之源码分析 | LIRE Tutorial of Analysis of the Source Code

    LIRE教程之源码分析 |LIRE Tutorial of Analysis of the Source Code 最近在做地理图像识别和检索的研究,发现了一个很好用的框架LIRE,遂研究了一通.网上 ...

  3. 基于HTML5 Ajax文件上传进度条如何实现(jquery版本)

    <!DOCTYPE html> <html> <head> <title>html5_2.html</title> <meta htt ...

  4. poj2299 Ultra-QuickSort(线段树求逆序对)

    Description In this problem, you have to analyze a particular sorting algorithm. The algorithm proce ...

  5. Tomcat调优总结

    Tomcat 优化分为系统优化,Java虚拟机调优,Tomcat本身的优化. Tomcat 如何起停 ./catalina.sh stop ./catalina.sh start/sbin/servi ...

  6. fabric Clone

    记录下: var newObj = fabric.util.object.clone(obj); decDoc.dropCanvas.add(newObj., top: }));

  7. CentOS目录与文件操作

    pwd:查看当前目录 touch:创建文件 touch a.c ls:查看当前目录下文件,也可以ls /tmp查看tmp下的文件 rm:删除文件 rm a.c,也可以rm a.c -rf 强制删除 c ...

  8. 同一个程序里有多个版本的App

    在Xcode中添加多个targets进行版本控制,就是同一个app开发多个版本 以Xcode 9.3 为例 1. 创建 点击左侧工程项目文件,选择TARGETS 下的项目右击选择 Duplicate. ...

  9. javascript前端导出csv表格

    使用场景 后台统计经常要展示各种各样的表格数据,几乎每个表格展示都会伴随着数据的导出. 之前的解决方案都是通过发起一个相同查询参数(querystring)的导出请求(action=export),由 ...

  10. Python之路系列:面向对象初级:静态属性、静态方法、类方法

    一.静态属性 静态属性相当于数据属性. 用@property语法糖装饰器将类的函数属性变成可以不用加括号直接的类似数据属性. 可以封装逻辑,让用户感觉是在调用一个普通的数据属性. 例子: class ...