博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PIE SDK符号选择器
阅读量:6824 次
发布时间:2019-06-26

本文共 2484 字,大约阅读时间需要 8 分钟。

 

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         ///  2         /// 打开样式选择器 3         ///  4         ///  5         ///  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. 示例截图

 

转载于:https://www.cnblogs.com/PIESat/p/10169473.html

你可能感兴趣的文章
这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解)(转)
查看>>
Android compress 压缩 会不会失真
查看>>
Learning to Rank:Point-wise、Pair-wise 和 List-wise区别
查看>>
Android Emulator shorcut
查看>>
WCF 第四章 绑定 系列文章
查看>>
一起谈.NET技术,C#中使用#region指令的一些想法
查看>>
Beginning Storyboards in iOS 5 Part 2(转载)
查看>>
【excel】自动生成工作表目录
查看>>
闭包漫谈(从抽象代数及函数式编程角度)
查看>>
实战 Lucene,第 1 部分: 初识 Lucene
查看>>
HDUOJ1860 统计字符
查看>>
基于Contiki_Cooja平台的IEEE+802.15.4协议实现与改进
查看>>
linux 解压zip文件
查看>>
(轉貼) ASP.NET Session FAQ (初級) (.NET) (ASP.NET)
查看>>
win常用
查看>>
SET IDENTITY_INSERT
查看>>
asp.net中jQuery $post用法
查看>>
Accordion折叠布局
查看>>
pb 版本控制
查看>>
一步一步学lucene——(第四步:搜索篇)
查看>>