zoukankan      html  css  js  c++  java
  • PIE SDK矢量分级渲染

     

    1. 功能简介

        分级渲染是矢量的一种数据表达方式。通过选取一个字段,并根据实际需要对字段的数据进行分级,并对每一级设置不同的符号,已达到区分显示的效果。

    2. 功能实现说明

    2.1. 实现思路及原理说明

    第一步

    实例化矢量分级渲染对象

    第二步

    设置分级渲染的字段

    第三步

    设置分级数

    第四步

    设置不同分级的值及对应的符号

    第五步

    矢量渲染器接口转换

    第六步

    矢量图层渲染赋值

    2.2.  核心接口与方法

    接口/类

    方法

    说明

     

     

    Carto. IFeatureClassBreaksRender

    Field

    分级字段

    ClassCount

    分级数

    SetBreak ()

    设置分级对应数值

    SetSymbol()

    设置不同级别对应的符号

    2.3. 示例代码

    项目路径

    百度云盘地址下/PIE示例程序/07图层渲染/02.矢量分级渲染

    数据路径

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

    视频路径

    百度云盘地址下/PIE视频教程/07图层渲染/02.矢量分级渲染.avi

    示例代码

     1 /// <summary>
     2 /// 分级渲染方法
     3 /// </summary>
     4 /// <param name="sender"></param>
     5 /// <param name="e"></param>
     6 private void toolStripButton_Classify_Click(object sender, EventArgs e)
     7 {
     8     if (mapControlMain.ActiveView.CurrentLayer == null) return;               
     9     IFeatureLayer featureLayer = mapControlMain.ActiveView.CurrentLayer as IFeatureLayer;
    10     if (featureLayer == null) return;
    11             
    12     //1、分级字段,根据实际情况进行修改
    13     string classifyField ="Total_Coll";           
    14     //创建FeatureClassBreaksRender,设置参数
    15     IFeatureClassBreaksRender featureClassBreaksRender = new FeatureClassBreaksRender();
    16     featureClassBreaksRender.Field = classifyField;  //设置渲染字段
    17     featureClassBreaksRender.ClassCount = 3;//设置分级数
    18     featureClassBreaksRender.SortClassesAscending = true;
    19 
    20     //分级数、分级的值,根据实际情况自定义修改即可
    21     //2、设置分级级别
    22     featureClassBreaksRender.SetBreak(0, 20);
    23     featureClassBreaksRender.SetBreak(1, 40);
    24     featureClassBreaksRender.SetBreak(2, 70);
    25 
    26     //3、 定义简单填充符号
    27     IFillSymbol fillSymbol0 = new SimpleFillSymbol();
    28     fillSymbol0.Color = Color.FromArgb(255, 0, 0);
    29     IFillSymbol fillSymbol1 = new SimpleFillSymbol();
    30     fillSymbol1.Color = Color.FromArgb(0, 255, 0);
    31     IFillSymbol fillSymbol2 = new SimpleFillSymbol();
    32     fillSymbol2.Color = Color.FromArgb(0, 0, 255);
    33 
    34     //设置分级符号
    35     featureClassBreaksRender.SetSymbol(0, fillSymbol0);
    36     featureClassBreaksRender.SetSymbol(1, fillSymbol1);
    37     featureClassBreaksRender.SetSymbol(2, fillSymbol2);
    38 
    39     //4、设置分级标签
    40     featureClassBreaksRender.SetLabel(0, "第一级");
    41     featureClassBreaksRender.SetLabel(1, "第二级");
    42     featureClassBreaksRender.SetLabel(2, "第三级");
    43 
    44     //5、进行渲染并刷  新
    45     featureLayer.Render = featureClassBreaksRender as IFeatureRender;
    46     mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
    47 }
    View Code

    2.4. 示例截图

  • 相关阅读:
    发布说明
    Python批量读取人脸图片与数据互相转换
    Python图片与其矩阵数据互相转换
    在sklearn上读取人脸数据集保存图片到本地
    Python图片转换成矩阵,矩阵数据转换成图片
    lintcode :continuous subarray sum 连续子数组之和
    lintcode 中等题:digits counts 统计数字
    lintcode 中等题:Single number III 落单的数III
    lintcode 中等题:Singleton number II 落单的数 II
    lintcode 中等题:majority number III主元素III
  • 原文地址:https://www.cnblogs.com/PIESat/p/10167182.html
Copyright © 2011-2022 走看看