PIE SDK点元素的绘制
1. 功能简介
在数据的处理中会用到点元素的绘制,目前PIE SDK支持IMarkerSymbol的点元素的绘制,MarkerSymbol对象是用于修饰点状对象的符号,它包括ArrowMarkerSymbol(箭头形式的符号)、CharacterMarkerSymbol(字符形式的点符号)、MultiLayerMarkerSymbol(多个符号叠加生成的新的点符号)、PictureMarkerSymbol(以图片为背景的点符号)、SimpleMarkerSymbol(简单类型的点符号)这5个不同类型点符号的子类。下面对点元素的绘制功能进行介绍。
2. 功能实现说明
2.1. SimpleMarkerSymbol类型的点元素的绘制
2.1.1. 实现思路及原理说明
第一步 |
设置点的Geometry信息 |
第二步 |
设置点的符号 |
第三步 |
绘制元素 |
2.1.2. 核心接口与方法
接口/类 |
方法/属性 |
说明 |
IMarkerElement |
Geometry属性 |
获取或设置Geometry |
Symbol属性 |
获取或设置符号样式 |
|
IGraphicsContainer |
AddElement(IElement element) |
添加要素 |
ISimpleMarkerSymbol |
Style属性 |
样式 |
2.1.3. 示例代码
项目路径 |
百度云盘地址下/PIE示例程序/08元素绘制/01点的绘制 |
视频路径 |
百度云盘地址下/PIE视频教程/08元素绘制/01点的绘制.avi |
示例代码 |
|
1 /// <summary> 2 /// 简单点样式的点绘制 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void toolStripButton_DrawSimplePoint_Click(object sender, EventArgs e) 7 { 8 //1.设置空间信息 9 IPoint point = new PIE.Geometry.Point(); 10 point.PutCoords(200, 200, 0); 11 IMarkerElement markerElement = new MarkerElement(); 12 markerElement.Geometry = point as IGeometry; 13 14 //2.设置符号信息 15 ISimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbol(); 16 simpleMarkerSymbol.Style = SimpleMarkerStyle.SMSCircle; 17 markerElement.Symbol = simpleMarkerSymbol as IMarkerSymbol; 18 19 //3.绘制元素,刷新显示 mapControlMain.ActiveView.GraphicsContainer.AddElement(markerElement); mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll); 20 } View Code |
2.1.4. 示例截图
2.2. ArrowMarkerSymbol类型的点元素的绘制
2.2.1. 实现思路及原理说明
第一步 |
设置点的Geometry信息 |
第二步 |
设置点的符号 |
第三步 |
绘制元素 |
2.2.2 . 核心接口与方法
接口/类 |
方法/属性 |
说明 |
IMarkerElement |
Geometry属性 |
获取或设置Geometry |
Symbol属性 |
获取或设置符号样式 |
|
IGraphicsContainer |
AddElement(IElement element) |
添加要素 |
IArrowMarkerSymbol |
Length属性 |
符号的长度 |
Width属性 |
符号的宽度 |
2.2.3. 示例代码
项目路径 |
百度云盘地址下/PIE示例程序/08元素绘制/01点的绘制 |
视频路径 |
百度云盘地址下/PIE视频教程/08元素绘制/01点的绘制.avi |
示例代码 |
|
1 /// <summary> 2 /// 箭头填充样式的点绘制 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void toolStripButton_DrawArrowMarkerSyPoint_Click(object sender, EventArgs e) 7 { 8 IPoint point = new PIE.Geometry.Point(); 9 point.PutCoords(200, 200, 0); 10 IMarkerElement markerElement = new MarkerElement(); 11 markerElement.Geometry = point as IGeometry; 12 13 //2.设置符号信息 14 IArrowMarkerSymbol arrowMarkSymbol = new ArrowMarkerSymbol(); 15 arrowMarkSymbol.Length = 100; 16 arrowMarkSymbol.Width = 20; 17 markerElement.Symbol = arrowMarkSymbol as IMarkerSymbol; 18 19 //3.绘制元素,刷新显示 mapControlMain.ActiveView.GraphicsContainer.AddElement(markerElement); mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll); 20 } View Code |
2.2.4. 示例截图
2.3. CharacterMarkerSymbol类型的点元素的绘制
2.3.1. 实现思路及原理说明
第一步 |
设置点的Geometry信息 |
第二步 |
设置点的符号 |
第三步 |
绘制元素 |
2.3.2. 核心接口与方法
接口/类 |
方法/属性 |
说明 |
IMarkerElement |
Geometry属性 |
获取或设置Geometry |
Symbol属性 |
获取或设置符号样式 |
|
IGraphicsContainer |
AddElement(IElement element) |
添加要素 |
ICharacterMarkerSymbol |
CharacterIndex属性 |
获取或设置字体符号的编号 |
Font属性 |
获取或设置字体 |
|
IMarkerSymbol |
Color,Size等属性 |
颜色,大小等属性 |
2.3.3. 示例代码
项目路径 |
百度云盘地址下/PIE示例程序/08元素绘制/01点的绘制 |
视频路径 |
百度云盘地址下/PIE视频教程/08元素绘制/01点的绘制.avi |
示例代码 |
|
1 /// <summary> 2 /// 字符样式填充的点绘制 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void toolStripButton_DrawCharacterSyPoint_Click(object sender, EventArgs e) 7 { 8 //1.设置空间信息 9 IPoint point = new PIE.Geometry.Point(); 10 point.PutCoords(200, 200, 0); 11 IMarkerElement markerElement = new MarkerElement(); 12 markerElement.Geometry = point as IGeometry; 13 //定义点状符号 14 ICharacterMarkerSymbol characterMSymbol = new CharacterMarkerSymbol(); 15 characterMSymbol.CharacterIndex = 111;//飞机 16 System.Drawing.Font font = new Font("ESRI Default Marker", 20); 17 characterMSymbol.Font = font; 18 //characterMSymbol,颜色,偏移量 19 IMarkerSymbol markSymbol = characterMSymbol as IMarkerSymbol; 20 markSymbol.XOffset = 20; 21 markSymbol.YOffset = 40; 22 markSymbol.Size = 24; 23 markSymbol.Color = Color.Red; 24 markerElement.Symbol = markSymbol; 25 mapControlMain.ActiveView.GraphicsContainer.AddElement(markerElement); mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll); 26 } View Code |
2.3.4. 示例截图
2.4. PictureMarkerSymbol类型的点元素的绘制
2.4.1. 实现思路及原理说明
第一步 |
设置点的Geometry信息 |
第二步 |
设置点的符号 |
第三步 |
绘制元素 |
2.4.2. 核心接口与方法
接口/类 |
方法/属性 |
说明 |
IMarkerElement |
Geometry属性 |
获取或设置Geometry |
Symbol属性 |
获取或设置符号样式 |
|
IGraphicsContainer |
AddElement(IElement element) |
添加要素 |
IPictureMarkerSymbol |
CreateFromFile(string filePath) |
从文件创建 |
2.4.3. 示例代码
项目路径 |
百度云盘地址下/PIE示例程序/08元素绘制/01点的绘制 |
视频路径 |
百度云盘地址下/PIE视频教程/08元素绘制/01点的绘制.avi |
示例代码 |
|
1 /// <summary> 2 /// 图片样式填充的点绘制 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void toolStripButton_DrawPicSyPoint_Click(object sender, EventArgs e) 7 { 8 //1.设置空间信息 9 IPoint point = new PIE.Geometry.Point(); 10 point.PutCoords(200, 200, 0); 11 IMarkerElement markerElement = new MarkerElement(); 12 markerElement.Geometry = point as IGeometry; 13 14 //2.设置符号信息 15 IPictureMarkerSymbol picMarkSymbol = new PictureMarkerSymbol(); 16 OpenFileDialog openFileDialog = new OpenFileDialog(); 17 openFileDialog.Filter = "Picture File|*.bmp";//jpg的格式不支持 18 openFileDialog.Title = "选择一张图片:"; 19 openFileDialog.Multiselect = false; 20 if (openFileDialog.ShowDialog() != DialogResult.OK) return; 21 string picFilePath = openFileDialog.FileName; 22 bool ok = picMarkSymbol.CreateFromFile(picFilePath); 23 if (ok) 24 { 25 markerElement.Symbol = picMarkSymbol as IMarkerSymbol; 26 mapControlMain.ActiveView.GraphicsContainer.AddElement(markerElement); 27 mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll); 28 } 29 } View Code |
2.4.4. 示例截图
2.5. MultiLayerMarkerSymbol类型的点元素的绘制
2.5.1. 实现思路及原理说明
第一步 |
设置点的Geometry信息 |
第二步 |
设置点的符号 |
第三步 |
绘制元素 |
2.5.2. 核心接口与方法
接口/类 |
方法/属性 |
说明 |
IMarkerElement |
Geometry属性 |
获取或设置Geometry |
Symbol属性 |
获取或设置符号样式 |
|
IGraphicsContainer |
AddElement(IElement element) |
添加要素 |
IMultiLayerMarkerSymbol |
AddLayer(…) |
添加点符号样式图层 |
IMarkerSymbol |
Size,Color等属性 |
获取或设置大小和颜色等属性值 |
2.5.3. 示例代码
项目路径 |
百度云盘地址下/PIE示例程序/08元素绘制/01点的绘制 |
视频路径 |
百度云盘地址下/PIE视频教程/08元素绘制/01点的绘制.avi |
示例代码 |
|
1 /// <summary> 2 /// 多图层样式填充的点绘制 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void toolStripButton_DrawMultiLayeSyPoint_Click(object sender, EventArgs e) 7 { 8 //1.设置空间信息 9 IPoint point = new PIE.Geometry.Point(); 10 point.PutCoords(200, 200, 0); 11 IMarkerElement markerElement = new MarkerElement(); 12 markerElement.Geometry = point as IGeometry; 13 14 //2.设置符号信息 15 // 定义第一个字体符号 16 ICharacterMarkerSymbol characterMSymbol1 = new CharacterMarkerSymbol(); 17 characterMSymbol1.CharacterIndex = 111;//飞机形状 18 System.Drawing.Font font = new Font("ESRI Default Marker", 20); 19 characterMSymbol1.Font = font; 20 21 // 设置颜色、大小、偏移,角度 22 IMarkerSymbol markerSymbol1 = characterMSymbol1 as IMarkerSymbol; 23 markerSymbol1.Size = 24; 24 markerSymbol1.Color = System.Drawing.Color.Red; 25 markerSymbol1.XOffset = 0; 26 markerSymbol1.YOffset = 0; 27 // markerSymbol1.Angle = 30; 28 29 // 定义第二个字体符号 30 ICharacterMarkerSymbol characterMSymbol2 = new CharacterMarkerSymbol(); 31 characterMSymbol2.CharacterIndex = 41;//正方形框 32 characterMSymbol2.Font = font; 33 34 // 设置颜色、大小、偏移,角度 35 IMarkerSymbol markerSymbol2 = characterMSymbol2 as IMarkerSymbol; 36 markerSymbol2.Size = 36; 37 markerSymbol2.Color = System.Drawing.Color.Blue; 38 markerSymbol2.XOffset = 0; 39 markerSymbol2.YOffset = 0; 40 // markerSymbol2.Angle = 30; 41 42 IMultiLayerMarkerSymbol multiLayerMSymbol = new MultiLayerMarkerSymbol(); 43 multiLayerMSymbol.AddLayer(markerSymbol2, false); 44 multiLayerMSymbol.AddLayer(markerSymbol1, false); 45 46 markerElement.Geometry = point as IGeometry; 47 markerElement.Symbol = multiLayerMSymbol as IMarkerSymbol; 48 //3.绘制元素,刷新显示 49 mapControlMain.ActiveView.GraphicsContainer.AddElement(markerElement); 50 mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll); 51 } View Code |
2.5.4. 示例截图
转载于:https://www.cnblogs.com/PIESat/p/10169850.html
PIE SDK点元素的绘制相关推荐
- PIE SDK CommandTool工具命令一览表
PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...
- PIE SDK影像坏线修复
1.算法功能简介 坏条带的由来:2003年5月31日,Landsat-7ETM+机载扫描行校正器(SLC) 故障,导致此后获取的影像出现了数据条带丢失,严重影响了Landsat ETM遥感影像的使用. ...
- PIE SDK与OpenCV结合说明文档
1.功能简介 OpenCV是基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效--由一系列 C 函数和少量 ...
- 使用WebBrowser控件时在网页元素上绘制文本或其他自定义内容
第一次在CNBlogs上发Post是提出一个有关使用WebBrowser控件时对SELECT网页元素操作的疑惑,这个问题至今也没有解决,后来有朋友在该Post的评论里询问WebBrowser控件如何在 ...
- PIE SDK矢量数据的读取
1.功能简介 GIS将地理空间数据表示为矢量数据和栅格数据.矢量数据模型使用点.线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点.河流和宗地等,每个要素被赋予一个ID,以便与其属性相关联.栅 ...
- PIE SDK傅里叶变换
1.算法功能简介 傅里叶变换能把遥感图像从空域变换到只包含不同频域信息的频域中.原图像上的灰度突变部位(如物体边缘).图像结构复杂的区域.图像细节及干扰噪声等,经傅里叶变换后,其信息大多集中在高频区: ...
- PIE SDK与IDL算法结合说明文档
1.功能简介 IDL是一门简单易用的科学计算和可视化语言,包含大量的图形图像处理函数,尤其是同ENVI结合集成了该软件的大量功能,因此被广泛用于遥感.地信领域. 本示例程序实现了IDL算法与PIESD ...
- PIE SDK栅格生成等值线、面
1.算法功能简介 等值线图能直观地展示数据的变化趋势,是众多领域展示成果的重要图建之一,被广泛应用于石油勘探.矿物开采.气象预报等众多领域.等值线的绘制是指从大量采样数据中提取出具有相同值的点的信 ...
- PIE SDK矢量点生成等值线、面
1.算法功能简介 等值线图能直观地展示数据的变化趋势,是众多领域展示成果的重要图建之一,被广泛应用于石油勘探.矿物开采.气象预报等众多领域.等值线的绘制是指从大量采样数据中提取出具有相同值的点的信息, ...
最新文章
- python pexpect telnet_使用python的pexpect模块,实现远程免密登录的示例
- Win7新手系列教程:从安装到简单使用(新人必读)
- 【数理知识】拉格朗日乘数 Lagrange multipliers
- 初读设计模式-----《design pattern explained》读后感
- 【代码笔记】iOS-removeFromSuper
- 原生安全二倍速:探秘基础设施的内生“免疫系统“
- Jquery中的$(document).ready()详解
- 用Ant编译Flex项目的几点注意事项
- C++ cin 实现循环读入
- Android硬件访问服务框架思想初识
- “export ‘default‘ (imported as ‘echarts‘) was not found in ‘echarts‘
- Android现学现用第十二天
- 《实用软件工程》课程教学大纲(Practicality Software Engineering)
- overleaf官网登录注册报错:Sorry, we could not verify that you are not a robot.
- 原生js自定义提示框
- 不是 SELECTed 表达式
- 编码原则 之 Separation of Concerns
- 申论指导议论文八大高分标准
- 键盘移动小div(js原生)
- linux系统设置开机启动,linux下设置自己的程序开机自启动
热门文章
- C# IP地址与数字之间的互转
- OSSIM下部署HIDS
- centos 修改shm
- Apache Solr schema.xml及solrconfig.xml文件中文注解
- C#的委托事件在winform窗体中实现传值备忘
- 华尔街风暴的深层原因
- HBase major version number must be less than 2 for hbase-sink
- BZOJ4571:[SCOI2016]美味——题解
- 在UWP 将BitmapImage转换为 WriteableBitmap
- 百度编辑器修改,不让它自动替换html标签