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. Linux网络编程IPv4和IPv6的inet_addr、inet_aton、inet_pton等函数小结(转)

    原文:http://blog.csdn.net/ithomer/article/details/6100734 知识背景: 210.25.132.181属于IP地址的ASCII表示法,也就是字符串形式 ...

  2. 微软和Google的盈利模式对比分析

    一: 微软和Google是世界上最成功科技巨头之一,但他们之间却有着不同的产品和业务,二者的盈利方式也各有不同,本文将分析和探讨的二者盈利模式的异同. 微软的盈利模式 在1975年由大学肄业的Bill ...

  3. c# 读取txt文档和写入文档的方法

    StreamReader sr = new StreamReader(path); //path是要读取的文件的完整路径 String str_read = sr.ReadToEnd(); //从开始 ...

  4. WinForm中使用自定义Tooltip控件

    private ToolTip tooltipCtr; 构造函数中: 隐藏默认的Tooltip:this.ShowCellToolTips = false; this.tooltipCtr = new ...

  5. 【连载】redis库存操作,分布式锁的四种实现方式[四]--基于Redis lua脚本机制实现分布式锁

    一.redis lua介绍 Redis 提供了非常丰富的指令集,但是用户依然不满足,希望可以自定义扩充若干指令来完成一些特定领域的问题.Redis 为这样的用户场景提供了 lua 脚本支持,用户可以向 ...

  6. vs2015+opencv3.3.1+ maxflow-v3.01 c++实现Yuri Boykov 的Interactive Graph Cuts

    出的结果不理想. 感觉是tlink的权重的计算有问题,以及参数的设置.三个可设置参数是后面的 i j k  .如果你找到了一组好参数请告诉我. 下载地址 http://download.csdn.ne ...

  7. Socket 简易静态服务器 WPF MVVM模式(三)

    ViewModels类 这个类其实就是个大杂烩,什么都可以用 这个类没有什么东西,最多的就是写一下xaml页面的逻辑控制,开启关闭监听 using System; using System.Colle ...

  8. GitHub+Hexo 搭建个人网站详细教程

    原文链接 GitHub+Hexo 搭建个人网站详细教程 前言: 随着互联网浪潮的翻腾,国内外涌现出越来越多优秀的社交网站让用户分享信息更加便捷.然后,如果你是一个不甘寂寞的程序猿(媛),是否也想要搭建 ...

  9. Kubernetes 集群部署(2) -- Etcd 集群

    Kubenetes 集群部署规划: 192.168.137.81  Master 192.168.137.82  Node 192.168.137.83  Node 以下在 Master 节点操作. ...

  10. 【转】VS2010中无System.Data.OracleClient引用的问题

    源地址:http://blog.csdn.net/pinchw/article/details/30465749