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

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

 

1. 功能简介

    在数据的处理中会用到线元素的绘制,目前PIE SDK支持IFillSymbol接口,FillSymbol对象是用于修饰填充面状对象的符号,它包括MarkerFillSymbol(由点状符号形成的填充面符号)、LineFillSymbol(由线状符号形成的填充面符号)、MultiLayerFillSymbol(多个符号叠加生成的新的填充面符号)、PictureFillSymbol(以图片为背景的填充面符号)、SimpleFillSymbol(简单类型的填充面符号)这5个不同类型填充面符号的子类。

2. 功能实现说明

2.1. SimpleFillSymbol类型的线元素的绘制

2.1.1.  实现思路及原理说明

第一步

设置点的Geometry信息

第二步

设置面的符号

第三步

绘制元素

2.1.2.  核心接口与方法

接口/类

方法/属性

说明

 

IPolygonElement

Geometry属性

获取或设置Geometry

Symbol属性

获取或设置符号样式

IGraphicsContainer

AddElement(IElement element)

添加元素

ISimpleFillSymbol

Style属性

获取或设置简单的面样式

IFillSymbol

Color属性

获取或设置面的颜色

2.1.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/08元素绘制/03面的绘制

视频路径

百度云盘地址下/PIE视频教程/08元素绘制/03面的绘制.avi

示例代码

1        ///  2         /// 简单填充样式的面元素 3         ///  4         ///  5         ///  6         private void toolStripButton_DrawSimpleFillSyPolygon_Click(object sender, EventArgs e) 7         { 8             //定义空间位置 9             IPointCollection polygon = new PIE.Geometry.Polygon();10             polygon.AddPoint(100, 100, 0);11             polygon.AddPoint(100, 300, 0);12             polygon.AddPoint(300, 300, 0);13             polygon.AddPoint(300, 100, 0);14             (polygon as IPolygon).CloseRings();15             //定义面元素16             IPolygonElement polyElement = new PIE.Carto.PolygonElement();17             polyElement.Geometry = polygon as IGeometry;18 19             ISimpleFillSymbol simpleFillSymbol = new SimpleFillSymbol();20             simpleFillSymbol.Style = SimpleFillStyle.SFSDense2Pattern;21             IFillSymbol fillSybol = simpleFillSymbol as IFillSymbol;22             fillSybol.Color = Color.Green;23 24             polyElement.Symbol = fillSybol;         mapControlMain.ActiveView.GraphicsContainer.AddElement(polyElement);         mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);     25         }
View Code

2.1.4. 示例截图

 

2.2. MarkerFillSymbol类型的点元素的绘制

2.2.1.  实现思路及原理说明

第一步

设置点的Geometry信息

第二步

设置面的符号

第三步

绘制元素

2.2.2.  核心接口与方法

接口/类

方法/属性

说明

 

IPolygonElement

Geometry属性

获取或设置Geometry

Symbol属性

获取或设置符号样式

IGraphicsContainer

AddElement(IElement element)

添加元素

IMarkerFillSymbol

MarkerSymbol属性

获取或设置点的符号样式

IFillSymbol

Color属性

获取或设置面的颜色

     IMarkerSymbol

Size

获取或设置点的大小

Color

获取或设置颜色

2.2.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/08元素绘制/03面的绘制

视频路径

百度云盘地址下/PIE视频教程/08元素绘制/03面的绘制.avi

示例代码

1         ///  2         /// 由点状符号填充的面符号的面元素 3         ///  4         ///  5         ///  6         private void toolStripButton_DrawMarkerSyPolygon_Click(object sender, EventArgs e) 7         { 8             IPointCollection polygon = new PIE.Geometry.Polygon(); 9             polygon.AddPoint(100, 100, 0);10             polygon.AddPoint(100, 300, 0);11             polygon.AddPoint(300, 300, 0);12             polygon.AddPoint(300, 100, 0);13             (polygon as IPolygon).CloseRings();14             //定义面元素15             IPolygonElement polyElement = new PIE.Carto.PolygonElement();16             polyElement.Geometry = polygon as IGeometry;17 18             IMarkerFillSymbol markerFillSymbol = new MarkerFillSymbol();19 20             //ICharacterMarkerSymbol字符点状符号21             ICharacterMarkerSymbol characterMSymbol = new CharacterMarkerSymbol();22             characterMSymbol.CharacterIndex = 111;//飞机23             System.Drawing.Font font = new Font("ESRI Default Marker", 20);24             characterMSymbol.Font = font;25             //设置符号的大小,颜色,偏移量26             IMarkerSymbol markSymbol = characterMSymbol as IMarkerSymbol;27             markSymbol.XOffset = 0;28             markSymbol.YOffset = 0;29             markSymbol.Size = 20;30             markSymbol.Color = Color.Red;31 32             markerFillSymbol.MarkerSymbol = markSymbol;33             IFillSymbol fillSymbol = markerFillSymbol as IFillSymbol;34 35             polyElement.Symbol = fillSymbol;36             mapControlMain.ActiveView.GraphicsContainer.AddElement(polyElement);37             mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);38         }
View Code

2.2.4 . 示例截图

 

2.3. LineFillSymbol类型的点元素的绘制

2.3.1. 实现思路及原理说明

第一步

设置点的Geometry信息

第二步

设置面的符号

第三步

绘制元素

2.3.2.  核心接口与方法

接口/类

方法/属性

说明

 

IPolygonElement

Geometry属性

获取或设置Geometry

Symbol属性

获取或设置符号样式

IGraphicsContainer

AddElement(IElement element)

添加元素

 

ILineFillSymbol

LineSymbol属性

获取或设置简单的面样式

Rotate

获取或设置旋转角度

Separation

获取或设置间距

IFillSymbol

Color属性

获取或设置面的颜色

ISimpleLineSymbol

style

获取或设置简单点的样式

 

ILineSymbol

Join

获取或设置线的连接方式

Color

获取或设置线的颜色

Cap

获取或设置线的线帽样式

2.3.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/08元素绘制/03面的绘制

视频路径

百度云盘地址下/PIE视频教程/08元素绘制/03面的绘制.avi

示例代码

1           ///  2         /// 线状填充样式的面元素 3         ///  4         ///  5         ///  6         private void toolStripButton3_DrawLineSyPolygon_Click(object sender, EventArgs e) 7         { 8             //设置空间信息 9             IPointCollection polygon = new PIE.Geometry.Polygon();10             polygon.AddPoint(100, 100, 0);11             polygon.AddPoint(100, 300, 0);12             polygon.AddPoint(300, 300, 0);13             polygon.AddPoint(300, 100, 0);14             (polygon as IPolygon).CloseRings();15             //定义面元素16             IPolygonElement polyElement = new PIE.Carto.PolygonElement();17             polyElement.Geometry = polygon as IGeometry;18 19             ILineFillSymbol lineFillSymbol = new LineFillSymbol();20             ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbol();21             simpleLineSymbol.Style = SimpleLineStyle.SLSDashDot;22             ILineSymbol lineSymbol = simpleLineSymbol as ILineSymbol;23             lineSymbol.Join = LineJoinStyle.LJSBevel;24             lineSymbol.Color = Color.Green;25             lineSymbol.Cap = LineCapStyle.LCSRound;26 27             lineFillSymbol.LineSymbol = lineSymbol;28             lineFillSymbol.Rotate = 20;29             lineFillSymbol.Separation = 20;30 31             IFillSymbol fillSymbol = lineFillSymbol as IFillSymbol;32             polyElement.Symbol = fillSymbol;33             mapControlMain.ActiveView.GraphicsContainer.AddElement(polyElement);34             mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);35         }
View Code

2.3.4. 示例截图

 

2.4. PictureFillSymbol类型的点元素的绘制

2.4.1. 实现思路及原理说明

第一步

设置点的Geometry信息

第二步

设置面的符号

第三步

绘制元素

2.4.2. 核心接口与方法

接口/类

方法/属性

说明

 

IPolygonElement

Geometry属性

获取或设置Geometry

Symbol属性

获取或设置符号样式

IGraphicsContainer

AddElement(IElement element)

添加元素

 

 

 

IPictureFillSymbol

CreateFromFile(string path)

获取或设置简单的面样式

XSeparation

获取或设置X方向间距

YSeparation

获取或设置Y方向缩放比例

XScale

获取或设X方向缩放比例

YScale

获取或设Y方向缩放比例

IFillSymbol

Color属性

获取或设置面的颜色

2.4.3. 示例代码

项目路径

百度云盘地址下/PIE示例程序/08元素绘制/03面的绘制

视频路径

百度云盘地址下/PIE视频教程/08元素绘制/03面的绘制.avi

示例代码

1        ///  2         /// 图片填充样式的面元素 3         ///  4         ///  5         ///  6         private void toolStripButton_DrawPicSyPolygon_Click(object sender, EventArgs e) 7         { 8             //设置空间信息 9             IPointCollection polygon = new PIE.Geometry.Polygon();10             polygon.AddPoint(100, 100, 0);11             polygon.AddPoint(100, 300, 0);12             polygon.AddPoint(300, 300, 0);13             polygon.AddPoint(300, 100, 0);14             (polygon as IPolygon).CloseRings();15             //定义面元素16             IPolygonElement polyElement = new PIE.Carto.PolygonElement();17             polyElement.Geometry = polygon as IGeometry;18 19             IPictureFillSymbol picFillSymbol = new PictureFillSymbol();20             OpenFileDialog openFileDialog = new OpenFileDialog();21             openFileDialog.Filter = "Picture File|*.bmp";22             openFileDialog.Title = "选择一张图片:";23             if (openFileDialog.ShowDialog() != DialogResult.OK) return;24             picFillSymbol.CreateFromFile(openFileDialog.FileName);25             picFillSymbol.XOffset = 10;26             picFillSymbol.YOffset = 10;27             picFillSymbol.XSeparation = 10;28             picFillSymbol.YSeparation = 10;29             picFillSymbol.XScale = 3;30             picFillSymbol.YScale = 3;31             picFillSymbol.Rotate = 0;32 33             IFillSymbol fillSymbol = picFillSymbol as IFillSymbol;34             polyElement.Symbol = fillSymbol;           mapControlMain.ActiveView.GraphicsContainer.AddElement(polyElement);          mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);35         }        36     IFillSymbol fillSymbol = picFillSymbol as IFillSymbol;37             polyElement.Symbol = fillSymbol;          m_mapControl.ActiveView.GraphicsContainer.AddElement(polyElement);          m_mapControl.PartialRefresh(ViewDrawPhaseType.ViewAll);
View Code

2.4.4. 示例截图

2.5. MultiLayerFillSymbol类型的点元素的绘制

2.5.1 实现思路及原理说明

第一步

设置点的Geometry信息

第二步

设置面的符号

第三步

绘制元素

2.5.2. 核心接口与方法

接口/类

方法/属性

说明

 

IPolygonElement

Geometry属性

获取或设置Geometry

Symbol属性

获取或设置符号样式

IGraphicsContainer

AddElement(IElement element)

添加元素

IMultiLayerFillSymbol

AddLayer(…)

添加填充面符号图层

IFillSymbol

Color属性

获取或设置面的颜色

2.5.3. 示例代码

数据路径

百度云盘地址下/PIE示例程序/08元素绘制/03面的绘制

视频路径

百度云盘地址下/PIE视频教程/08元素绘制/03面的绘制.avi

示例代码

1         ///  2         /// 多个符号叠加生成的样式的面元素 3         ///  4         ///  5         ///  6         private void toolStripButton_DrawMultiSyPolygon_Click(object sender, EventArgs e) 7         { 8             IPointCollection polygon = new PIE.Geometry.Polygon(); 9             polygon.AddPoint(100, 100, 0);10             polygon.AddPoint(100, 300, 0);11             polygon.AddPoint(300, 300, 0);12             polygon.AddPoint(300, 100, 0);13             (polygon as IPolygon).CloseRings();14             //定义面元素15             IPolygonElement polyElement = new PIE.Carto.PolygonElement();16             polyElement.Geometry = polygon as IGeometry;17 18             IMultiLayerFillSymbol multiLayerFillSymbol = new MultiLayerFillSymbol();19 20             //ISimpleFillSymbol简单填充符号21             ISimpleFillSymbol simpleFillSymbol = new SimpleFillSymbol();22             simpleFillSymbol.Style = SimpleFillStyle.SFSDense2Pattern;23             IFillSymbol fillSybol = simpleFillSymbol as IFillSymbol;24             fillSybol.Color = Color.Pink;25 26             //ILineFillSymbol 线填充符号27             ILineFillSymbol lineFillSymbol = new LineFillSymbol();28 29             //设置简单的线符号30             ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbol();31             simpleLineSymbol.Style = SimpleLineStyle.SLSDashDot;32             ILineSymbol lineSymbol = simpleLineSymbol as ILineSymbol;33             lineSymbol.Color = Color.Green;34             lineSymbol.Join = LineJoinStyle.LJSMitre;35             lineSymbol.Width = 4;36             lineSymbol.Cap = LineCapStyle.LCSSquare;37 38             lineFillSymbol.LineSymbol = lineSymbol;39             IFillSymbol fillSymbol2 = lineFillSymbol as IFillSymbol;40 41             multiLayerFillSymbol.AddLayer(fillSybol, false);42             multiLayerFillSymbol.AddLayer(fillSymbol2, false);43             polyElement.Symbol = multiLayerFillSymbol as IFillSymbol;         mapControlMain.ActiveView.GraphicsContainer.AddElement(polyElement);            mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);44         }
View Code

2.5.4. 示例截图

 

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

你可能感兴趣的文章
Entity Framework Core 2.0的新特性
查看>>
[deviceone开发]-do_Http组件示例
查看>>
linux yum命令
查看>>
职场中怎样评估系统架构师的成绩?
查看>>
(总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解
查看>>
centos7 搭建nfs共享文件
查看>>
linux命令
查看>>
我的友情链接
查看>>
Python中fnmatch模块的使用
查看>>
BE镜像还原系统过程
查看>>
Linux中查看所有正在运行的进程
查看>>
H3CTE京东翰林讲师分享实验2 网络设备基本调试
查看>>
汇正进销存
查看>>
近期学习oracle 数据库总结
查看>>
php apc
查看>>
我的友情链接
查看>>
C#学习视频分享与开发技术QQ交流群
查看>>
bootstrap datetimepicker 时间控件的使用
查看>>
CentOS6.4之文本编辑器Vi/Vim
查看>>
EIGRP 实验2: 邻居关系
查看>>