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. c# 二分查找法(2分钟算法)

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  2. 正确理解WPF中的TemplatedParent (转贴)

    http://blog.csdn.net/idebian/article/details/8761388 (注:Logical Tree中文称为逻辑树,Visual Tree中文称为可视化树或者视觉树 ...

  3. PostBack

    PostBack 字面意义 Post提交 Back回来. 提交回来. 1. AutoPostBack 服务器控件需要设置 AutoPostBack="true" 后才会提交服务器. ...

  4. angular 辅助路由

  5. UIView 动画

    1.UIView 动画 核心动画 和 UIView 动画 的区别: 核心动画一切都是假象,并不会真实的改变图层的属性值,如果以后做动画的时候,不需要与用户交互,通常用核心动画(转场). UIView ...

  6. 第十二篇 os模块

    Python的os模块提供了系统相关,目录,文件操作,执行命令等操作. 1.文件和目录操作相关的方法: 方法 说明 os.mkdir 创建目录 os.rmdir 删除目录 os.rename 重命名 ...

  7. 可以避免的10大IT面试误区

    在所有的面试过程当中,很多面试者都普遍犯了这样一个错误——由于对面试准备的不足,所以对于应聘公司的背景,以及一些最基本的信息都缺乏了解,有些面试者甚至对要面试的公司毫无所知.这些数据并不是空穴来风,A ...

  8. kali linux之edb--CrossFire缓冲区溢出

    漏洞的罪恶根源------变量,数据与代码边界不清,开发人员对用户输入没做过滤,或者过滤不严 如这个脚本,写什么,显示什么,但是加上:,|,&&,后面加上系统命令,就执行命令了 缓冲区 ...

  9. IIS发布的网页上传文件被拒绝

    在IIS所在的服务器共享的权限(如下图示,但注意不是加everyone)和共享文件夹的权限里都加上IIS_USER完全控制,如果不行再加上NETWORK SERVICE权限

  10. 用python写个快排

    快排过程比较简单就直接上代码了: #!/usr/bin/python3 def quik_sort(L, left, right): if left <= right: key = L[left ...