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

示例代码

         /// <summary>
/// 打开样式选择器
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_OpenSymbolSelector_Click(object sender, EventArgs e)
{
SymbolSelectorDialog symbolSelectDialog = new SymbolSelectorDialog();
//1.获取要操作的图层
IMap map = mapControlMain.FocusMap;
IFeatureLayer featureLayer = map.GetLayer() as IFeatureLayer;
//2.判断图层的类型
GeometryType geoType = featureLayer.FeatureClass.GetGeomType();
ISymbol currentSymbol = null; switch (geoType)
{
case GeometryType.GeometryPoint:
currentSymbol = new SimpleMarkerSymbol();
break;
case GeometryType.GeometryPolygon:
currentSymbol = new SimpleFillSymbol();
break;
case GeometryType.GeometryPolyline:
currentSymbol = new SimpleLineSymbol();
break;
case GeometryType.GeometryUnknown:
break;
default:
break;
}
if (currentSymbol != null)
{
//3.对话框显示当前图层的类型符号
symbolSelectDialog.Symbol = currentSymbol;
if (symbolSelectDialog.ShowDialog() != ) return;//判断ok还是取消 //4.将选中的符号进行渲染
ISymbol selectSymbol = symbolSelectDialog.Symbol;
//IFeatureRender featureRender = featureLayer.Render;
IFeatureUniqueValueRender render = new FeatureUniqueValueRender();
render.DefaultSymbol = selectSymbol;
featureLayer.Render = render as IFeatureRender;
mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
}
}

2.4. 示例截图

最新文章

  1. Swift的 convenience &amp;&amp; designated init
  2. JS正则表达式获取字符串中特定字符
  3. SCOI2007蜥蜴
  4. 【转】JSONP简介
  5. 数据库设主键以及where的应用
  6. CentOS配置smaba与Windows共享文件
  7. springmvc权限拦截器
  8. grep与正则表达式基础
  9. mybatis与spring的整合(使用接口实现crud)
  10. Excel日期中那个著名的bug
  11. Jason Wang: 结对编程 CountWord(第三次作业)
  12. Ubuntu Win10双系统重启ubuntu出现黑屏情况 Ubuntu引导修复
  13. linux基础命令touch
  14. docker 限制container容器使用内存大小,不限制swap
  15. linux上安装mysql,tomcat,jdk
  16. Source Code Pro 编程字体
  17. 用HTML,Vue+element-UI做桌面UI
  18. UML 图C#
  19. web界面设计
  20. loadrunner--TPS和平均事务响应时间

热门文章

  1. linux-常用命令备注
  2. 认识HttpContext.User
  3. JavaScript必备:Google发布的JS代码规范(转)
  4. java IO 管道流PipedOutputStream/PipedInputStream
  5. Alpha冲刺(二)
  6. Javascript脚本 :Function 对象的定义和使用
  7. Sobel算法
  8. 死磕Java之聊聊ArrayList源码(基于JDK1.8)
  9. hbase安装 配置报错 zookeeper启动报错
  10. npm更换为镜像