1. 功能简介

PIE SDK中关于矢量渲染提供了多种方案,包括简单渲染、分级渲染、唯一值渲染,这几种渲染方式具有一定的通用性,可以满足用户绝大多数的需求。

当面对复杂的业务,当前渲染方案无法满足用户需求时,可选择进行自定义渲染方案的编写,针对不同的业务编写自定义的逻辑和行业特定的符号。

目前PIE SDK自定义渲染只支持矢量数据。

2. 功能实现说明

2.1. 实现思路及原理说明

第一步

新建自定义渲染方案类,继承至PIE.Carto.CustomerFeatureRender

第二步

重写CustomerFeatureRender类中的GetSymbolByFeature()方法

第三步

实例化自定义渲染类对象

第四步

矢量渲染器接口转换

第五步

矢量图层渲染赋值

2.2. 核心接口与方法

接口/类

方法

说明

Carto.CustomerFeatureRender

GetSymbolByFeature()

根据要素获得对应渲染符号

2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/07图层渲染/04.矢量自定义渲染

数据路径

百度云盘地址下/PIE示例数据/矢量数据/Shape/省级行政区.shp

视频路径

百度云盘地址下/PIE视频教程/07图层渲染/04.矢量自定义渲染.avi

示例代码

 方法(一)
//当前选择图层
if (mapControlMain.ActiveView.CurrentLayer == null) return;
//是否为矢量图层
IFeatureLayer featureLayer = mapControlMain.ActiveView.CurrentLayer as IFeatureLayer;
if (featureLayer == null) return;
//实例化自定义渲染对象
DefineRender render = new DefineRender();
featureLayer.Render = render as IFeatureRender;
//视图刷新
mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll); 方法(二)
/// <summary>
/// 自定义渲染类
/// 继承至CustomerFeatureRender类,重写GetSymbolByFeature方法即可。
/// </summary>
public class DefineRender : PIE.Carto.CustomerFeatureRender
{
/// <summary>
/// 构造函数
/// </summary>
public DefineRender()
{
}
public override ISymbol GetSymbolByFeature(IFeature feature)
{
//根据点线面,返回不同的符号,本示例生成面状符号
//主要是根据不同的值,进行逻辑编写
GeometryType pGeometry = feature.Geometry.GetGeometryType();
if (pGeometry == GeometryType.GeometryPoint)
{
//点符号
IMarkerSymbol markSymbol = new SimpleMarkerSymbol();
return (markSymbol as ISymbol);
}
else if (pGeometry == GeometryType.GeometryPolyline)
{
//线符号
ILineSymbol lineSymbol = new SimpleLineSymbol();
lineSymbol.Width = ;
lineSymbol.Color = Color.AliceBlue;
return (lineSymbol as ISymbol);
}
else if (pGeometry == GeometryType.GeometryPolygon||pGeometry==GeometryType.GeometryMultiPolygon)
{
object value = feature.GetValue("HighSchool");//取值字段可根据实际数据进行修改
//面符号 IFillSymbol fillSymbol = new SimpleFillSymbol(); ILineSymbol lineSymbol = new SimpleLineSymbol();
lineSymbol.Width = ;
lineSymbol.Color = Color.AliceBlue; fillSymbol.OutlineSymbol = lineSymbol;
fillSymbol.Color = Color.CornflowerBlue; string ssStr = value.ToString();
int valueTemp = Convert.ToInt32(ssStr);
//篇幅有限,只对一些值进行符号赋值,其余的采用默认符号
if (valueTemp<)
{
fillSymbol.Color = Color.Pink;
}
else if (valueTemp<)
{
fillSymbol.Color = Color.RosyBrown;
}
else if(valueTemp<)
{
fillSymbol.Color = Color.Blue;
}
else
{
fillSymbol.Color = Color.AliceBlue;
}
return (fillSymbol as ISymbol);
}
else
{
return null;
}
}
}

2.4.  示例截图

PIE SDK矢量自定义渲染的更多相关文章

  1. PIE SDK矢量分级渲染

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

  2. PIE SDK栅格RGB渲染

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

  3. PIE SDK矢量唯一值渲染

    1. 功能简介 图层的唯一值渲染即是根据矢量图层的某一个数值字段的属性值,按照值的不同大小设置不同的显示符号.属性数值相等的所有要素归为同一种类,即同一符号. 2. 功能实现说明 2.1. 实现思路及 ...

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

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

  5. PIE SDK栅格分级渲染

    1.  功能简介 栅格数据分级渲染是根据不同的分级规则,对像元值进行等级划分:并通过对每一级设置不同的显示符号和标注信息,从而达到分级显示的效果. 2.功能实现说明 2.1. 实现思路及原理说明 第一 ...

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

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

  7. PIE SDK矢量透明度、标注控制

    1. 功能简介 透明度和标注是矢量图层的相关属性:图层透明值是0-100间的整数,标注是显示在地图上的文字信息,它是出图中不可或缺的重要元素.标注的样式丰富,并且放置位置灵活. 2. 功能实现说明 2 ...

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

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

  9. PIE SDK矢量数据项查看

    1. 功能简介 矢量数据由大量要素信息构成,矢量数据项查看可以看到数据的属性表,下面就基于PIE SDK,介绍矢量数据项查看功能的实现. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 加载 ...

随机推荐

  1. Django框架 之 Pagination分页实现

    Django框架 之 Pagination分页实现 浏览目录 自定义分页 Django内置分页 一.自定义分页 1.基础版自定义分页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  2. eclipse——执行Maven命令

    右键pom.xml文件 点击 m2 Maven build... 输入要执行的命令,点击Run 控制台会打印maven运行过程

  3. Java SimpleDateFormat工具类

    package AnimalDemo; import java.text.ParseException; import java.text.SimpleDateFormat; import java. ...

  4. web.xml配置及详解

    1.web.xml 是网络程序中的一个很重要的配置文件. 2.XML基础标准是为XML的进一步实用化制定的标准,它规定了采用XML制定标准时的一些公用特征.方法或规则.XML Schema描述了更加严 ...

  5. C# 真正完美的 汉字转拼音

    网上有很多说自己整理的汉字转拼音是完美的,但使用后才发现都是半吊的瓶子,问题多多. 常见的生僻字,或多音字识别,转换后简直让人感觉可怕. 主流的转换有三种:hash匹配,Npinyin,微软PinYi ...

  6. sqlserver中 多条数据合并成一条数据 (stuff 与 for xml path 连用)

    SQL 列转行,即多行合并成一条   需求:按照分组,将多条记录内容合并成一条,效果如下: 数据库示例: CREATE TABLE [t2]([NID] [bigint] NULL,[district ...

  7. 关于 href="\\#" 和 return false

    href="\\#"  跳转到本页 return false 相当于不刷新 href="javascript:void(0)"   或者 href=" ...

  8. SSM项目配置文件及其各项使用

    $说明: ·Spring 5  + Mybatis 3.4.5 +SpringMVC  ·使用druid数据库 ·使用log4j输出日志 $Spring 及其配置文件(部分) Spring官方网站:h ...

  9. 将某个类封装成XML形式返回

    <?xml version="1.0" encoding="GBK" standalone="no"?><package& ...

  10. Windows系统如何安装Redis?

    转自 http://blog.csdn.net/lamp_yang_3533/article/details/52024744   一.Redis的下载地址 Redis官方并没有提供Redis的win ...