PIE SDK点元素的绘制

1功能简介

在数据的处理中会用到点元素的绘制,目前PIE SDK支持IMarkerSymbol的点元素的绘制,MarkerSymbol对象是用于修饰点状对象的符号,它包括ArrowMarkerSymbol(箭头形式的符号)、CharacterMarkerSymbol(字符形式的点符号)、MultiLayerMarkerSymbol(多个符号叠加生成的新的点符号)、PictureMarkerSymbol(以图片为背景的点符号)、SimpleMarkerSymbol(简单类型的点符号)这5个不同类型点符号的子类。下面对点元素的绘制功能进行介绍。

2功能实现说明

2.1SimpleMarkerSymbol类型的点元素的绘制

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         }

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点的绘制


示例代码


 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         }  

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点的绘制


示例代码


 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         } 

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点的绘制


示例代码


 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         }

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点的绘制


示例代码


 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         }   

2.5.4示例截图

原文地址:https://www.cnblogs.com/PIESat/p/10169850.html

时间: 2024-08-29 17:57:42

PIE SDK点元素的绘制的相关文章

PIE SDK文本元素的绘制

1功能简介 在数据的处理中会用到文本元素的绘制,利用ITextElement文本元素接口进行绘制,目前PIE SDK支持ITextSymbol符号接口,TextSymbol对象是用于修饰文字元素对象的符号,它实现了ITextSymbol接口,其实现了字体角度.字体.字号大小等属性的获取和设置. 2功能实现说明 2.1.1 实现思路及原理说明 第一步 设置文本的Geometry信息 第二步 设置文本的符号 第三步 绘制元素 2.1.2 核心接口与方法 接口/类 方法/属性 说明 ITextElem

PIE SDK元素的选择和取消选择

1功能简介 在数据的查看等时候会用到元素的选择, 目前PIE SDK支持元素的选择和去取消选择功能,下面对这两种功能如何使用进行介绍. 2功能实现说明 2.1元素的选择 2.1.1 实现思路及原理说明 第一步 设置文本的Geometry信息 第二步 设置文本的符号 2.1.2 核心接口与方法 接口/类 方法/属性 说明 SelectElementTool 选择元素工具 ICommand OnCreate(); 创建对象 2.1.3示例代码 项目路径 百度云盘地址下/PIE示例程序/08元素绘制/

PIE SDK元素事件的监听

1功能简介 元素在操作的过程中,如添加,删除,选中等操作都需要有事件的监听,PIE SDK支持对元素操作事件的监听,下面对元素事件的监听进行介绍. 2功能实现说明 2.1.1 实现思路及原理说明 第一步 地图初始化进行窗体绑定,声明元素的监听事件 第二步 当触发监听事件时进行事件操作 2.1.2 核心接口与方法 接口/类 方法/属性 说明 IGraphicsContainer DeleteElement(IElement element) 删除指定元素 AddElement () 添加元素 Se

PIE SDK 鹰眼图

1. 功能简介 鹰眼图,是GIS的一个基本功能,在鹰眼图上可以可以像从空中俯视一样查看地图框中所显示的地图在整个图中的位置. PIE SDK支持鹰眼图的功能实现:下面就具体介绍一下. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 在鹰眼图pannel内加载地图文档 第二步 当地图范围发生变化时MapHawkEyePmdControl_OnExtentUpdated(),鹰眼图发生变化事件 第三步 当点击鹰眼图是主地图发生相应操作事件MapHawkEyeControl_MouseDow

PIE SDK灾前灾后对比

灾前灾后对比功能是GIS软件中常用的功能之一,指利用多时相获取的覆盖同一地表区域的遥感影像及其它辅助数据来确定和分析地表变化.它利用计算机图像处理系统,对不同时段目标或现象状态的变化进行识别.分析:它能确定一定时间间隔内地物或现象的变化,并提供地物的空间分布及其变化的定性与定量信息.现在呢,具体介绍下基于我们PIE SDK是如何实现这基本工具灾前灾后对比功能的基本实现. [在前灾后功能界面图] 要实现灾前灾后对比功能主要就是通过两个mapControl控件,灾前地图控件是mapControl_l

PIE SDK专题制图保存模板说明文档

1.    功能简介 在PIE SDK中,所有的制图元素.视图范围以及排版等都可以保存成一个模板,以供多次重复使用.使用模板时只需要打开该模板,加载相应数据,就可以直接出图,省去了重复制作图幅的麻烦,方便快捷. 每个地图模板都是一个地图文档(PmdContents),它被保存为*.pmd文件.      [模板文件]        [植被指数模板] 2. 功能实现说明 2.1保存模板 使用IMapDocument接口的Save()方法保存地图文档. 2.2 实现思路及原理说明 第一步 获取当前地

PIE SDK专题制图打开模板说明文档

1.    功能简介 在PIE SDK中,所有的制图元素.视图范围以及排版等都可以保存成一个模板,以供多次重复使用.使用时只需要打开该模板,加载相应数据,就可以直接出图了,省去了重复制作图幅的麻烦,方便快捷. 每个地图模板都是一个地图文档(PmdContents),它被保存为*.pmd文件.         [模板文件]         [植被指数模板] 2. 功能实现说明 2.1打开模板 在PIE中,每个显示的地图都是一个地图文档(PmdContents),它可以保存为*.pmd文件.用IMa

PIE SDK专题制图另存模板

1.功能简介 在PIE SDK中,所有的制图元素.视图范围以及排版等都可以保存成一个模板,以供多次重复使用.使用模板时只需要打开该模板,加载相应数据,就可以直接出图,省去了重复制作图幅的麻烦,方便快捷. 每个地图模板都是一个地图文档(PmdContents),它被保存为*.pmd文件.                                                                             [模板文件]              [植被指数模板] 2

PIE SDK Command&amp;&amp;Tool工具命令一览表

PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls.RasterCommand PIE.Controls.dll 2 加载矢量数据 PIE.Controls.VectorCommand 3 加载科学数据集数据 PIE.Controls.ScientificDatasetCommand 4 加载环境数据 PIE.Controls.LoadHJDataComma