zoukankan      html  css  js  c++  java
  • PIE SDK矢量数据简单渲染

     

    1. 功能简介

        PIE SDK对数据的符号化分为矢量数据渲染和栅格数据渲染两大类。

        目前PIE SDK中针对矢量数据渲染包括简单渲染、唯一值渲染、分级渲染、自定义渲染;针对栅格数据渲染包括拉伸渲染、RGB渲染、分级渲染、唯一值渲染。

        简单渲染是PIE SDK针对矢量数据的默认渲染方案,打开一个FeatureLayer的时候,如果没有给FeatureLayer设置Render属性。那么使用的就是简单渲染。简单渲染对整个图层中的所有要素使用同一种方式显示。

    2. 功能实现说明

    2.1. 实现思路及原理说明

    第一步

    创建简单渲染对象。

    第二步

    根据图层的类型,实例化不同的符号,设置符号对象的相应属性

    第三步

    矢量渲染器接口转换

    第四步

    矢量图层渲染赋值

    2.2. 核心接口与方法

    接口/类

    方法/属性

    说明

    Carto.IFeatureSimpleSymbolRender

    Smbol

    获取或设置symbol

    Carto.IFeatureRender

    Render

    设置或获取渲染方式

     

    Carto.ISimpleMarkerSymbol

    Style

    设置或获取显示的Style

    Size

    设置或获取Size

    Color

    设置或获取Color

     

    Carto. IMarkerSymbol

    Style

    设置或获取Style

    Size

    设置或获取Size

    Color

    设置或获取Color

     

    Carto. ISimpleLineSymbol

    Style

    设置或获取Style

    Width

    设置或获取线的Width

    Color

    设置或获取Color

     

    Carto. ILineSymbol

    Style

    设置或获取Style

    Wdth

    设置或获取线的Width

    Color

    设置或获取Color

    Carto.ISimpleFillSymbol

    Stytle

    设置或获取Style

    Carto. IFillSymbol

    OutlineSymbol

    设置或获取填充轮廓线的样式

    2.3. 示例代码

    项目路径

    百度云盘地址下/PIE示例程序/07图层渲染/01.矢量数据简单渲染

    数据路径

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

    视频路径

    百度云盘地址下/PIE视频教程/07图层渲染/01.矢量数据简单渲染.avi

    示例代码

     1 方法(一)
     2 //判断当前是否有选中图层
     3 if (mapControlMain.ActiveView.CurrentLayer == null)
     4     return;
     5 //选中的图层是否为矢量图层
     6 IFeatureLayer featureLayer = mapControlMain.ActiveView.CurrentLayer as IFeatureLayer;
     7 if (featureLayer == null)
     8     return;
     9 
    10 //根据点线面进行渲染
    11 IFeatureSimpleSymbolRender render = new FeatureSimpleSymbolRender();//简单渲染对象
    12 GeometryType geometryType = featureLayer.FeatureClass.GetGeomType();//图层类型
    13 if (geometryType == GeometryType.GeometryPoint)
    14 {
    15     //简单点符号
    16     ISimpleMarkerSymbol mark = new SimpleMarkerSymbol();
    17     mark.Style = SimpleMarkerStyle.SMSCross;
    18 
    19     IMarkerSymbol markSymbol = mark as IMarkerSymbol;
    20     markSymbol.Size = 2;
    21     markSymbol.Color = System.Drawing.Color.Brown;
    22     render.Symbol = markSymbol as ISymbol;
    23 }
    24 else if (geometryType == GeometryType.GeometryPolyline)
    25 {
    26     //设置简单线符号
    27     ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbol();
    28     simpleLineSymbol.Style = SimpleLineStyle.SLSDashDot;
    29 
    30     ILineSymbol lineSymbol = simpleLineSymbol as LineSymbol;
    31     lineSymbol.Color = System.Drawing.Color.Red;
    32     lineSymbol.Width = 2;
    33     lineSymbol.Join = LineJoinStyle.LJSBevel;
    34     lineSymbol.Cap = LineCapStyle.LCSRound;
    35     render.Symbol = simpleLineSymbol as ISymbol;
    36 }
    37 else if (geometryType == GeometryType.GeometryPolygon)
    38 {
    39     //设置简单线符号
    40     ISimpleLineSymbol simpleLSymbol = new SimpleLineSymbol();
    41     simpleLSymbol.Style = SimpleLineStyle.SLSDashDot;
    42     ILineSymbol lineSymbol = simpleLSymbol as LineSymbol;
    43     lineSymbol.Color = System.Drawing.Color.Red;
    44     lineSymbol.Width = 2;
    45     lineSymbol.Join = LineJoinStyle.LJSBevel;
    46     lineSymbol.Cap = LineCapStyle.LCSRound;
    47 
    48     // 定义简单填充符号
    49     ISimpleFillSymbol simpleFillSymbol = new SimpleFillSymbol();
    50     simpleFillSymbol.Style = SimpleFillStyle.SFSDense6Pattern;
    51     IFillSymbol fillSymbol = simpleFillSymbol as FillSymbol;
    52     //设置轮廓线样式
    53     fillSymbol.OutlineSymbol = lineSymbol;
    54     render.Symbol = simpleFillSymbol as ISymbol;
    55 }
    56 //Render对象赋值
    57 IFeatureRender featureRender = render as IFeatureRender;
    58 featureLayer.Render = featureRender;
    59 mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
    View Code

    2.4. 示例截图

  • 相关阅读:
    python14 1.带参装饰器 | wrapper 了了解 # 2.迭代器 ***** # 可迭代对象 # 迭代器对象 # for迭代器 # 枚举对象
    python13 1.函数的嵌套定义 2.global、nonlocal关键字 3.闭包及闭包的运用场景 4.装饰器
    python12--字符串的比较 函数的默认值的细节 三元表达式 函数对象 名称空间 作用域 列表与字典的推导式 四则运算 函数的嵌套
    python11 函数的定义,调用,分类
    python10--函数的来源,优点,定义,组成,使用(定义,调用)函数的分类,函数的返回值
    python1--计算机原理 操作系统 进制 内存分布
    python2 配置环境变量
    python3 数据类型
    Java创建线程的三种方式
    webhooks动态更新配置
  • 原文地址:https://www.cnblogs.com/PIESat/p/10167154.html
Copyright © 2011-2022 走看看