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. 现代C++学习笔记之二入门篇2,数据转换

    static_cast:    这种强制转换只会在编译时检查. 如果编译器检测到您尝试强制转换完全不兼容的类型,则static_cast会返回错误. 您还可以使用它在基类指针和派生类指针之间强制转换, ...

  2. HTML5 Canvas游戏开发实战 PDF扫描版

    HTML5 Canvas游戏开发实战主要讲解使用HTML5 Canvas来开发和设计各类常见游戏的思路和技巧,在介绍HTML5 Canvas相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读 ...

  3. Graphics 小记

    1.切图 drowg.DrawImage(productImg1, new System.Drawing.Rectangle(30, 30, 300, 300), new System.Drawing ...

  4. WP REST API: 设置和使用OAuth 1.0a Authentication(原文)

    In the previous part of the series, we set up basic HTTP authentication on the server by installing ...

  5. 「CF140C」 New Year Snowmen

    题目链接 戳这 贪心+优先队列,只要每次将数量前三大的半径拿出来就好了,用优先队列维护一下 #include<bits/stdc++.h> #define rg register #def ...

  6. Balance(Stack)

    栈的运用 mooc视频连接 #include <iostream> using namespace std; ]; ; void Push(char c) { ) { Top = ; S[ ...

  7. 80端口被system(pid=4)占用

    1.查看80端口被哪个进程占用,cmd->netstat -ano | findstr 80 2.cmd->tasklist列出当前运行中的进程,或在任务管理器中查看pid为4的进程. 经 ...

  8. Mysql的用户基本操作

    创建用户: mysql> create user 'cai'@'localhost' identified by '123456'; Query OK, 0 rows affected (0.0 ...

  9. PAT1002 写出这个数 (C++实现)

    PAT乙级考试题目 1002 写出这个数 (20 分) 题目要求: 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数  ...

  10. Samba服务为例、简单了解

    先.关掉SElinux.防火墙. ---------------------------- 安装rpm包(主): samba-3.6.9-164.el6.x86_64.rpm 启动检测:samba服务 ...