博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PIE SDK点元素的绘制
阅读量:6354 次
发布时间:2019-06-22

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

 

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          ///  2         /// 简单点样式的点绘制 3         ///  4         ///  5         ///  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         ///  2        /// 箭头填充样式的点绘制 3        ///  4        ///  5        ///  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         ///  2         /// 字符样式填充的点绘制 3         ///  4         ///  5         ///  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         ///  2         /// 图片样式填充的点绘制 3         ///  4         ///  5         ///  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          ///  2         /// 多图层样式填充的点绘制 3         ///  4         ///  5         ///  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

你可能感兴趣的文章
OpenCms创建网站过程图解——献给OpenCms的初学者们
查看>>
C++ 异常处理机制的实现
查看>>
Freebsd的ports命令
查看>>
分布式系统---幂等性设计
查看>>
【转】时钟周期,机器周期,指令周期的区别
查看>>
MYSQL 更新时间自己主动同步与创建时间默认值共存问题
查看>>
android 屏幕适配
查看>>
Android Activity的4种启动模式
查看>>
leetcode第一刷_Minimum Depth of Binary Tree
查看>>
pm2-webshell —— 基于浏览器的终端控制台
查看>>
Mysql基准测试
查看>>
Session 撰改演示
查看>>
【转】python3 发邮件实例(包括:文本、html、图片、附件、SSL、群邮件)
查看>>
事务隔离级别(图文详解)
查看>>
canvas系列教程08-canvas各种坑
查看>>
浅析package.json中的devdependencies 和 dependencies
查看>>
又一个 iOS 侧边栏组件: SideMenu
查看>>
vue.js 打包遇到的问题
查看>>
【译】更优秀的GraphQL官方中文文档-客户端如何使用
查看>>
git pull遇到的问题
查看>>