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. Eclipse工具

    1 ArrayList的常见方法 * a: add(参数) 向集合中添加元素 * b: get(int index) 取出集合中的元素,get方法的参数,写入索引 * c: size() 返回集合的长 ...

  2. IIS 6.0 发布网站使用教程

    原文地址:http://wenku.baidu.com/view/95d8b49851e79b89680226aa.html

  3. bitbucket使用教程

    Bitbucket使用说明: 使用者请直接看第一步,第二步和egit使用说明, 需要自己创建仓库的可以看三四步 第一步:新用户注册 bitbucket.org 然后按步骤创建一个教程代码库 可以选择下 ...

  4. Ext中setValue和setRawValue

    Ext.getCmp('modifyStatus').setValue(record.get('status').trim()); Ext.getCmp('modifyStatus').setRawV ...

  5. 如何调用写好的指定模块?——sys.path

    python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...

  6. winform datagridview某一列设为自动宽度

    如果用displayedcells只会使看见的数据自动列宽,滚动条往下发现后面的没有自动列宽,所以要用allcells就不会出现这个问题

  7. luoguP3302 [SDOI2013]森林

    https://www.luogu.org/problemnew/show/P3302 看到查询第 k 小,而且是一颗树,可以联想到在树上的主席树,a 和 b 路径中第 k 小可以通过在 a, b, ...

  8. [Swift实际操作]九、完整实例-(2)在Xcode 10中创建新项目

    本文将在Xcode中创建上一文<在iTunesConnect网站中创建产品>在iTunes Connect创建的产品具有相同的Bundle ID的应用程序. 在项目模板窗口中,选择单视图模 ...

  9. Win7下C/C++跨平台开发工具IDE的安装之CodeBlocks

    1. Win7下安装CodeBlocks: 下载带有mingw的CodeBlocks:http://www.codeblocks.org/downloads/26#windows 运行所下载程序: 点 ...

  10. window.open()弹出窗口被拦截

    之前有个需求是输入一些配置,然后点击预览,通过接口保存配置并返回预览页面链接,在新页面中打开链接.后来测试一直说没有新页面打开,我一看,原来是被浏览器拦截了. 原因如下: 浏览器只有在认为click和 ...