zoukankan      html  css  js  c++  java
  • PIE SDK符号选择器

     

    1. 功能简介

         符号选择器可以根据不同的需求进行改变图层的符号形状以及颜色,下面基于PIE SDK介绍如何使用符号选择器。

    2. 功能实现说明

    2.1.  实现思路及原理说明

    第一步

    加载图层

    第二步

    判断图层的符号类型

    第三步

    对话框里显示当前对应符号类型的符号界面

    第四步

    将选中的符号进行渲染,并显示

    2.2. 核心接口与方法

    接口/类

    方法/属性

    说明

    PIE.AxControls. SymbolSelectorDialog

    Symbol

    获取或设置符号

    GeometryType

    GetGeomType()

    获取类型

    IFeatureUniqueValueRender

    DefaultSymbol

    获取或设置默认符号

    IFeatureLayer

    Render

    获取或设置矢量图层渲染

    2.3. 示例代码

    项目路径

    百度云盘地址下/PIE示例程序/12.通用功能/04符号样式选择器

    数据路径

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

    视频路径

    百度云盘地址下/PIE视频教程/12.通用功能/04符号样式选择器.avi

    示例代码

     1         /// <summary>
     2         /// 打开样式选择器
     3         /// </summary>
     4         /// <param name="sender"></param>
     5         /// <param name="e"></param>
     6         private void toolStripButton_OpenSymbolSelector_Click(object sender, EventArgs e)
     7         {
     8             SymbolSelectorDialog symbolSelectDialog = new SymbolSelectorDialog();
     9             //1.获取要操作的图层
    10             IMap map = mapControlMain.FocusMap;
    11             IFeatureLayer featureLayer = map.GetLayer(0) as IFeatureLayer;
    12             //2.判断图层的类型
    13             GeometryType geoType = featureLayer.FeatureClass.GetGeomType();
    14             ISymbol currentSymbol = null;
    15 
    16             switch (geoType)
    17             {
    18                 case GeometryType.GeometryPoint:
    19                     currentSymbol = new SimpleMarkerSymbol();
    20                     break;
    21                 case GeometryType.GeometryPolygon:
    22                     currentSymbol = new SimpleFillSymbol();
    23                     break;
    24                 case GeometryType.GeometryPolyline:
    25                     currentSymbol = new SimpleLineSymbol();
    26                     break;
    27                 case GeometryType.GeometryUnknown:
    28                     break;
    29                 default:
    30                     break;
    31             }
    32             if (currentSymbol != null)
    33             {
    34                 //3.对话框显示当前图层的类型符号
    35                 symbolSelectDialog.Symbol = currentSymbol;
    36                 if (symbolSelectDialog.ShowDialog() != 1) return;//判断ok还是取消
    37 
    38                 //4.将选中的符号进行渲染
    39                 ISymbol selectSymbol = symbolSelectDialog.Symbol;
    40                 //IFeatureRender featureRender = featureLayer.Render;
    41                 IFeatureUniqueValueRender render = new FeatureUniqueValueRender();
    42                 render.DefaultSymbol = selectSymbol;
    43                 featureLayer.Render = render as IFeatureRender;
    44                 mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
    45             }
    46         }
    View Code

    2.4. 示例截图

     

  • 相关阅读:
    div 垂直居中的方法
    vs code添加到鼠标右键
    win10系统迁移到新的硬盘
    使用layui iframe弹层,各弹层之前的传值问题
    layui js动态添加的面板不能折叠
    Nginx系列6:对称加密与非对称加密各自的应用场景
    Nginx系列5:从网络原理来看SSL安全协议
    Nginx系列0:Nginx学习历程
    加扰与加密&解扰与解密
    微信小程序学习过程
  • 原文地址:https://www.cnblogs.com/PIESat/p/10169473.html
Copyright © 2011-2022 走看看