1.  功能简介

栅格数据分级渲染是根据不同的分级规则,对像元值进行等级划分;并通过对每一级设置不同的显示符号和标注信息,从而达到分级显示的效果。

2.功能实现说明

2.1. 实现思路及原理说明

第一步

实例化分级渲染对象

第二步

初始化唯一值对象,将各级值加入到唯一值对象中

第三步

初始化Color列表,对每一级设置对应颜色

第四步

分级渲染对象属性赋值

第五步

栅格渲染接口转换

第六步

栅格图层渲染赋值

2.2. 核心接口与方法

接口/类

方法

说明

DataSource.DatasetFactory

OpenFeatureDataset

打开矢量数据集

Carto.LayerFactory

CreateDefaultFeatureLayer

创建矢量图层

2.3.示例代码

项目路径

百度云盘地址下/PIE示例程序/07图层渲染/08.栅格分级渲染

数据路径

百度云盘地址下/PIE示例数据/栅格数据/ 01.GF1/GF1_PMS1_E116.5_N39.4_20131127_L1A0000117600-MSS1.tif

视频路径

百度云盘地址下/PIE视频教程/07图层渲染/08.栅格分级渲染.avi

示例代码

 /// <summary>
/// 栅格分级渲染
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_RasterClassifyRender_Click(object sender, EventArgs e)
{
if (mapControlMain.ActiveView.CurrentLayer == null) return;
IRasterLayer rasterLayer = mapControlMain.ActiveView.CurrentLayer as IRasterLayer;
if (rasterLayer == null)
return;
//1 设置分级阈值,根据实际情况进行添加
IUniqueValues uniqueValues = new UniqueValues();
uniqueValues.Clear();
uniqueValues.Add(, );
uniqueValues.Add(, );
uniqueValues.Add(, );
uniqueValues.Add(, );
uniqueValues.Add(, );
uniqueValues.Add(, ); //2 设置色带
IList<Color> colors = new List<Color>();
colors.Add(Color.FromArgb(, , ));
colors.Add(Color.FromArgb(, , ));
colors.Add(Color.FromArgb(, , ));
colors.Add(Color.FromArgb(, , ));
colors.Add(Color.FromArgb(, , ));
colors.Add(Color.FromArgb(, , )); //3 RasterClassifyColorRampRender分级渲染
IRasterClassifyColorRampRender rClassifyColorRampRender = new RasterClassifyColorRampRender();
rClassifyColorRampRender.ClassColors = colors; rClassifyColorRampRender.SetBandIndex();
rClassifyColorRampRender.UniqueValues = uniqueValues; //4 设置备注信息(可以自定义备注信息)
IList<string> listLabel = new List<string>();
int count = uniqueValues.GetCount();
string beginLabel = "Min";
string lastLabel = "";
for (int i = ; i < count; i++)
{
if (i - >= )
{
beginLabel = uniqueValues.GetUniqueValue(i - ).ToString();
}
lastLabel = uniqueValues.GetUniqueValue(i).ToString();
string labelInfo = string.Format("{0}-{1}", beginLabel,lastLabel);
listLabel.Add(labelInfo);
}
rClassifyColorRampRender.Labels = listLabel; //设置rasterRender
IRasterRender rasterRender = rClassifyColorRampRender as IRasterRender;
rasterLayer.Render = rasterRender;
mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}

2.4. 示例截图

PIE SDK栅格分级渲染的更多相关文章

  1. PIE SDK栅格RGB渲染

    1. 功能简介 RGB色彩模式是一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红.绿.蓝三个通道的颜色,这个标准几乎包 ...

  2. PIE SDK栅格图层渲染变化事件监听

    1. 功能简介 通过PIE SDK加载图层后,会默认的赋值给数据一个渲染.当用户重新给数据赋值Render或改变数据显示效果时,会触发渲染变化事件. 所谓的事件监听是在事件触发时,将执行用户指定的函数 ...

  3. PIE SDK矢量分级渲染

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

  4. PIE SDK栅格拉伸渲染

    1. 功能简介 栅格数据拉伸渲染是对指定的波段进行图像拉伸,并设置拉伸之后的颜色带,根据像元值和颜色带进行数据渲染. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 实例化拉伸渲染对象示例 ...

  5. PIE SDK矢量数据简单渲染

    1. 功能简介 PIE SDK对数据的符号化分为矢量数据渲染和栅格数据渲染两大类. 目前PIE SDK中针对矢量数据渲染包括简单渲染.唯一值渲染.分级渲染.自定义渲染:针对栅格数据渲染包括拉伸渲染.R ...

  6. PIE SDK矢量自定义渲染

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

  7. PIE SDK栅格增强控制

    1. 功能简介 亮度是指发光体(反光体)表面发光(反光)强弱的物理量:对比度指的是一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量:透明度是描述光线透过的程度 栅格数据增强控制主要是通过对亮 ...

  8. PIE SDK地图图层渲染方案管理

    1. 功能简介 在数据种类较多.渲染规则复杂的情况下,逐个设置其渲染方式是一件繁琐的工作.PIE SDK提供了一种省力省心的办法, PIE SDK提供栅格和矢量数据渲染方案的打开与保存.能够将配色方案 ...

  9. PIE SDK栅格数据集的读写

    1. 功能简介 栅格数据包含很多信息,在数据的运用中需要对数据的信息进行读取或写入,目前PIE SDK支持多种数据格式的数据读取和写入,下面对栅格数据格式的数据读写功能进行介绍. 2. 功能实现说明 ...

随机推荐

  1. FutureTask子任务取消执行的状态判断

    示例代码可以从github上获取 https://github.com/git-simm/simm-framework.git 一.业务场景: 系统中存在多种场景并发操作事务执行时互锁的情况,导致任务 ...

  2. Robot Framework 使用总结

    最近项目上使用了RF快速实现了一些验收测试的自动化case,感觉不错,很好用,下面就记录一下使用RF实现自动化的过程. 什么是RF? RF是一种测试框架,帮助测试人员在其框架下快速实现验收测试的自动化 ...

  3. Graphic 完成文字缩放

    思路:将文字生成图片,再加载此图片伸缩至需要大小. 首先要获取文字的实际大小.宽度高度,再通过图片缩放就OK了 public static void DrawText() { Font f = , F ...

  4. Job-Show Liang,你来掌管诺基亚王国,可好?

    保留我一向高大上风格,开头当然来一个段子 在即将到来MWC(Mobile World Congress缩写,世界移动通信大会),很高兴能听到小诺来参展,我不得不给它32个赞,因为小诺已经好几届没有浮头 ...

  5. 异常:已捕获: "Error creating context 'spring.root': 未将对象引用设置到对象的实例。" (System.Configuration.ConfigurationErrorsException) 捕获到一个 System.Configuration.ConfigurationErrorsException: "Error creating context 'sp

    查看所指定name的context是否注册成功,以后用此容器来获取其中的object. 常见的使用方式: Application_Start中使用ContextRegistry.GetContext( ...

  6. firefox 59 无法使用 pac 代理上网

    最近装了 firefox,电脑配置不太高,chrome 太吃内存了. 但是发现 SwitchyOmega的 pac 模式无法工作,这篇文章提到了两个思路, 其中network.dns.disableI ...

  7. java中容器的概念

    容器:顾名思义,装东西的器物至于spring中bean,aop,ioc等一些都只是实现的方式具体容器哪些值得我们借鉴,我个人觉得是封装的思想.将你一个独立的系统功能放到一个容器之中,可以当做一个大的接 ...

  8. MD5和SHA-1

    MD5和SHA-1都是我们耳熟能详的术语了,很多人可能知道他们跟加密有关系,但是他们是怎么做到加密的,他们各自的特点又是什么.我来简单的讲一讲. MD5和SHA-1都被称作哈希(Hash)函数,用过J ...

  9. jq学习笔记(二)

    jq笔记-dom篇-慕课网学习笔记 1.jQuery节点创建与属性的处理 创建元素节点: 1.$("<div></div>") 创建为本节点: 1.$(&q ...

  10. js 删除removeChild与替换replaceChild

    <input type="button" value="删除" id="btn" /> <input type=" ...