• 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. 示例截图

     

  • 相关阅读:
    jenkins常用插件汇总
    Jenkins
    如何在Visual Studio中配置git
    IP地址分类/IP地址10开头和172开头和192开头的区别/判断是否同一网段(A、B、C三类地址)【转】
    k8s 之如何从集群外部访问内部服务的三种方法
    k8s使用外部mysql做内部服务
    oracle判断某个字符串是否包含某个字符串的三种方法
    Python多进程共享numpy 数组
    【转载】 源码分析multiprocessing的Value Array共享内存原理
    集成SWAGGER2服务-spring cloud 入门教程
  • 原文地址:https://www.cnblogs.com/PIESat/p/10169473.html
Copyright © 2020-2023  润新知