zoukankan      html  css  js  c++  java
  • PIE SDK矢量透明度、标注控制

     

    1. 功能简介

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

    2. 功能实现说明

    2.1. 实现思路及原理说明

    矢量透明值

    第一步

    获取图层的Render

    第二步

    修改Render的透明值属性

    第三步

    触发渲染改变事件

    矢量标注

    第一步

    设置图层显示标注属性为True

    第二步

    设置标注字段

    第三步

    触发渲染改变事件

    2.2. 核心接口与方法

    矢量透明值

    接口/类

    方法

    说明

    Carto. IFeatureRender

    Transparency

    透明值,0~100之间整数

    矢量标注

    Carto. IFeatureLayer

    DisplayAnnotation

    图层是否显示注记

    AnnoProperties

    图层注记属性

    2.3. 示例代码

    项目路径

    百度云盘地址下/PIE示例程序/07图层渲染/05.矢量透明和标注

    数据路径

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

    视频路径

    百度云盘地址下/PIE视频教程/07图层渲染/05.矢量透明和标注.avi

    示例代码

     1 //设置透明度和标注
     2     if (mapControlMain.ActiveView.CurrentLayer == null) return;
     3     IFeatureLayer featureLayer = mapControlMain.ActiveView.CurrentLayer as IFeatureLayer;
     4     if (featureLayer == null) return;
     5     FormTransparent frm = new FormTransparent(featureLayer);//通过窗体去设置透明值和标注字段
     6     frm.ShowDialog();
     7     if (frm.DialogResult == DialogResult.OK)
     8     {
     9         //设置透明度
    10         int value=frm.TransparentValue;//透明值
    11         string fieldName=frm.FieldName;//标注字段
    12 
    13         //*******透明值设置********
    14         //透明值,0-100间的整数
    15         if (value > 100 || value < 0)
    16             return;
    17         if (featureLayer.Render == null)
    18             return;
    19         //设置透明值
    20         featureLayer.Render.Transparency = value;
    21                
    22         //*******标注设置********
    23         //判断是否为空、是否包含该字段
    24         if (fieldName == "" || featureLayer.FeatureClass.GetFields().GetFieldIndex(fieldName) == -1)
    25             return;
    26         //是否显示标注
    27         if (!featureLayer.DisplayAnnotation)
    28         {
    29             featureLayer.DisplayAnnotation = true;
    30         }
    31         featureLayer.AnnoProperties.AnnoField = fieldName;
    32         featureLayer.RaiseRenderChanged();     mapControlMain.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
    33     } 
    View Code

    2.4. 例截图

  • 相关阅读:
    LeetCode-018-四数之和
    LeetCode-017-电话号码的字母组合
    LeetCode-016-最接近的三数之和
    LeetCode-015-三数之和
    LeetCode-014-最长公共前缀
    LeetCode-013-罗马数字转整数
    LeetCode-012-整数转罗马数字
    LeetCode-011-盛最多水的容器
    LeetCode-010-正则表达式匹配
    [leetcode]103. Binary Tree Zigzag Level Order Traversal二叉树Z形遍历
  • 原文地址:https://www.cnblogs.com/PIESat/p/10167292.html
Copyright © 2011-2022 走看看