1. 功能简介
在数据的处理中会用到线元素的绘制,目前PIE SDK支持ILineSymbol的线元素的绘制,LineSymbol对象是用于修饰线状对象的符号,它包括CartographicLineSymbol(制图形式的线符号)、MarkerLineSymbol(由点状符号形成的线符号)、MultiLayerLineSymbol(多个符号叠加生成的新的线符号)、PictureLineSymbol(以图片为背景的线符号)、SimpleLineSymbol(简单类型的线符号)这5个不同类型线符号的子类。
2. 功能实现说明
2.1. SimpleLineSymbol类型的线元素的绘制
2.1.1. 实现思路及原理说明
第一步
|
设置点的Geometry信息
|
第二步
|
设置线的符号
|
第三步
|
绘制元素
|
2.1.2. 核心接口与方法
接口/类
|
方法/属性
|
说明
|
ILineElement
|
Geometry属性
|
获取或设置Geometry
|
Symbol属性
|
获取或设置符号样式
|
IGraphicsContainer
|
AddElement(IElement element)
|
添加元素
|
ISimpleLineSymbol
|
Style属性
|
线样式
|
IsDrawOutline
|
是否绘制轮廓线
|
ILineSymbol
|
Color属性
|
获取或设置线的颜色
|
Width属性
|
获取或设置线的宽度
|
Cap属性
|
获取或设置线帽的样式
|
Join属性
|
获取或设置线的连接样式
|
2.1.3. 示例代码
项目路径
|
百度云盘地址下/PIE示例程序/08元素绘制/02线的绘制
|
视频路径
|
百度云盘地址下/PIE视频教程/08元素绘制/02线的绘制.avi
|
示例代码
|
/// <summary>
/// 绘制简单样式线符号的线元素
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_DrawSimpleSyLine_Click(object sender, EventArgs e)
{ //IPolyline polyline = mapControl1.TrackLine();
//定义空间位置
IPointCollection polyLine = new Polyline();
polyLine.AddPoint(, , );
polyLine.AddPoint(, , );
//定义线元素
ILineElement lineElement = new PIE.Carto.LineElement();
lineElement.Geometry = polyLine as IGeometry;
ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbol();
simpleLineSymbol.Style = SimpleLineStyle.SLSDashDot;
//设置符号的颜色,线宽,线帽样式,连接样式,偏移大小
ILineSymbol lineSymbol = simpleLineSymbol as ILineSymbol;
lineSymbol.Color = Color.Green;
lineSymbol.Width = ;
lineSymbol.Cap = LineCapStyle.LCSRound;
lineSymbol.Join = LineJoinStyle.LJSBevel;
// lineSymbol.Offset = 20;
lineElement.Symbol = lineSymbol;
mapControlMain.ActiveView.GraphicsContainer.AddElement(lineElement);
mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
}
|
2.1.4. 示例截图
2.2. MarkerLineSymbol类型的点元素的绘制
2.2.1. 实现思路及原理说明
第一步
|
设置点的Geometry信息
|
第二步
|
设置线的符号
|
第三步
|
绘制元素
|
2.2.2. 核心接口与方法
接口/类
|
方法/属性
|
说明
|
ILineElement
|
Geometry属性
|
获取或设置Geometry
|
Symbol属性
|
获取或设置符号样式
|
IGraphicsContainer
|
AddElement(IElement element)
|
添加元素
|
IMarkerLineSymbol
|
Interval属性
|
获取或设置线的间距
|
IMarkerSymbol
|
Color,Size,XOffset,YOffset
|
颜色大小等属性
|
ILineSymbol
|
Color属性
|
获取或设置线的颜色
|
Width属性
|
获取或设置线的宽度
|
Cap属性
|
获取或设置线帽的样式
|
Join属性
|
获取或设置线的连接样式
|
2.2.3. 示例代码
项目路径
|
百度云盘地址下/PIE示例程序/08元素绘制/02线的绘制
|
视频路径
|
百度云盘地址下/PIE视频教程/08元素绘制/02线的绘制.avi
|
示例代码
|
/// <summary>
/// 点状填充的线绘制
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_DrawMarkerSyLine_Click(object sender, EventArgs e)
{
//IPolyline polyline = mapControl1.TrackLine();
//定义空间位置
IPointCollection polyLine = new Polyline();
polyLine.AddPoint(, , );
polyLine.AddPoint(, , );
//定义线元素
ILineElement lineElement = new PIE.Carto.LineElement();
lineElement.Geometry = polyLine as IGeometry;
IMarkerLineSymbol markerLineSymbol = new MarkerLineSymbol();
markerLineSymbol.Interval = ;
//设置线状符号IMarkerLineSymbol的点符号样式
ISimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbol();
simpleMarkerSymbol.IsDrawOutline = true;
simpleMarkerSymbol.Style = SimpleMarkerStyle.SMSX;
IMarkerSymbol markerSymbol = simpleMarkerSymbol as IMarkerSymbol;
markerSymbol.Color = System.Drawing.Color.Green;
markerSymbol.Size = ;
markerSymbol.XOffset = ;
markerSymbol.YOffset = ;
markerLineSymbol.MarkerSymbol = markerSymbol;
ILineSymbol lineSymbol = markerLineSymbol as ILineSymbol;
lineElement.Symbol = lineSymbol;
mapControlMain.ActiveView.GraphicsContainer.AddElement(lineElement);
mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
}
|
2.2.4. 示例截图
2.3. CartographicLineSymbol类型的点元素的绘制
2.3.1. 实现思路及原理说明
第一步
|
设置点的Geometry信息
|
第二步
|
设置线的符号
|
第三步
|
绘制元素
|
2.3.2. 核心接口与方法
接口/类
|
方法/属性
|
说明
|
ILineElement
|
Geometry属性
|
获取或设置Geometry
|
Symbol属性
|
获取或设置符号样式
|
IGraphicsContainer
|
AddElement(IElement element)
|
添加元素
|
ICartographicLineSymbol
|
DashPattern属性
|
获取或设置制线图规则
|
Width
|
获取或设置制图线的宽度
|
Interval
|
获取或设置线的间隔
|
ILineSymbol
|
Color属性
|
获取或设置线的颜色
|
Width属性
|
获取或设置线的宽度
|
Cap属性
|
获取或设置线帽的样式
|
Join属性
|
获取或设置线的连接样式
|
2.3.3. 示例代码
项目路径
|
百度云盘地址下/PIE示例程序/08元素绘制/02线的绘制
|
视频路径
|
百度云盘地址下/PIE视频教程/08元素绘制/02线的绘制.avi
|
示例代码
|
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_DrawCartoSyLine_Click(object sender, EventArgs e)
{
//IPolyline polyline = mapControl1.TrackLine();
//定义空间位置
IPointCollection polyLine = new Polyline();
polyLine.AddPoint(, , );
polyLine.AddPoint(, , );
//定义线元素
ILineElement lineElement = new PIE.Carto.LineElement();
lineElement.Geometry = polyLine as IGeometry;
ICartographicLineSymbol cartoLineSymbol = new CartographicLineSymbol();
IList<double> IList = new List<double>();
IList.Add();
IList.Add();
IList.Add();
cartoLineSymbol.DashPattern = IList;//制图线规则
cartoLineSymbol.Width = ;
cartoLineSymbol.Interval = ;
///设置符号颜色,偏移量,线帽样式,连接样式
ILineSymbol lineSymbol = cartoLineSymbol as ILineSymbol;
lineSymbol.Color = Color.Green;
lineSymbol.Offset = ;
lineSymbol.Cap = LineCapStyle.LCSRound;
lineSymbol.Join = LineJoinStyle.LJSRound;
lineElement.Symbol = lineSymbol;
mapControlMain.ActiveView.GraphicsContainer.AddElement(lineElement);
mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
}
|
2.3.4. 示例截图
2.4. PictureLineSymbol类型的点元素的绘制
2.4.1. 实现思路及原理说明
第一步
|
设置点的Geometry信息
|
第二步
|
设置线的符号
|
第三步
|
绘制元素
|
2.4.2. 核心接口与方法
接口/类
|
方法/属性
|
说明
|
ILineElement
|
Geometry属性
|
获取或设置Geometry
|
Symbol属性
|
获取或设置符号样式
|
IGraphicsContainer
|
AddElement(IElement element)
|
添加元素
|
IPictureLineSymbol
|
CreateFromFile()
|
从文件创建
|
XScale()
|
获取或者设置X方向缩放比例
|
YScale()
|
获取或者设置Y方向缩放比例
|
ILineSymbol
|
Color属性
|
获取或设置线的颜色
|
Width属性
|
获取或设置线的宽度
|
Cap属性
|
获取或设置线帽的样式
|
Join属性
|
获取或设置线的连接样式
|
MiterLimit
|
获取或设置线的MiterLimit
|
2.4.3. 示例代码
项目路径
|
百度云盘地址下/PIE示例程序/08元素绘制/02线的绘制
|
视频路径
|
百度云盘地址下/PIE视频教程/08元素绘制/02线的绘制.avi
|
示例代码
|
/// <summary>
/// 图片为填充背景的线绘制
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_DrawPicSyLine_Click(object sender, EventArgs e)
{
//IPolyline polyline = mapControl1.TrackLine();
//定义空间位置
IPointCollection polyLine = new Polyline();
polyLine.AddPoint(, , );
polyLine.AddPoint(, , );
//定义线元素
ILineElement lineElement = new PIE.Carto.LineElement();
lineElement.Geometry = polyLine as IGeometry;
IPictureLineSymbol picLineSymbol = new PictureLineSymbol();
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Picture File|*.bmp";
openFileDialog.Title = "请选择一整图片:";
if (openFileDialog.ShowDialog() != DialogResult.OK) return;
bool ok = picLineSymbol.CreateFromFile(openFileDialog.FileName);
if (ok)
{
picLineSymbol.XScale = 0.5;
picLineSymbol.YScale = 0.5;
ILineSymbol lineSymbol = picLineSymbol as ILineSymbol;
lineSymbol.Width = ;
lineSymbol.Offset = ;
lineSymbol.MiterLimit = ;
lineElement.Symbol = lineSymbol;
mapControlMain.ActiveView.GraphicsContainer.AddElement(lineElement);
mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
}
}
|
2.4.4. 示例截图
2.5. MultiLayerLineSymbol类型的点元素的绘制
2.5.1. 实现思路及原理说明
第一步
|
设置点的Geometry信息
|
第二步
|
设置线的符号
|
第三步
|
绘制元素
|
2.5.2. 核心接口与方法
接口/类
|
方法/属性
|
说明
|
ILineElement
|
Geometry属性
|
获取或设置Geometry
|
Symbol属性
|
获取或设置符号样式
|
IGraphicsContainer
|
AddElement(IElement element)
|
添加元素
|
IMultiLayerLineSymbol
|
AddLayer()
|
添加线符号样式图层
|
ILineSymbol
|
Color属性
|
获取或设置线的颜色
|
Width属性
|
获取或设置线的宽度
|
Cap属性
|
获取或设置线帽的样式
|
Join属性
|
获取或设置线的连接样式
|
2.5.3. 示例代码
项目路径
|
百度云盘地址下/PIE示例程序/08元素绘制/02线的绘制
|
视频路径
|
百度云盘地址下/PIE视频教程/08元素绘制/02线的绘制.avi
|
示例代码
|
/// <summary>
/// 多个符号叠加生成的线样式的线绘制
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripButton_DrawMultiSyLine_Click(object sender, EventArgs e)
{
//定义空间位置
IPointCollection polyLine = new Polyline();
polyLine.AddPoint(, , );
polyLine.AddPoint(, , );
//定义线元素
ILineElement lineElement = new PIE.Carto.LineElement();
lineElement.Geometry = polyLine as IGeometry;
#region IMultiLayerLineSymbol多个符号生成的线组成的符号
IMultiLayerLineSymbol mulLayerLineSymbol = new MultiLayerLineSymbol();
//IPictureLineSymbol图片符号
IPictureLineSymbol picLineSymbol = new PictureLineSymbol();
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Picture File|*.bmp";
openFileDialog.Title = "请选择一整图片:";
if (openFileDialog.ShowDialog() != DialogResult.OK) return;
bool ok = picLineSymbol.CreateFromFile(openFileDialog.FileName);
ILineSymbol lineSymbol = picLineSymbol as ILineSymbol;
if (ok)
{
picLineSymbol.XScale = 0.5;
picLineSymbol.YScale = 0.5;
lineSymbol.Width = ;
lineSymbol.Offset = ;
lineSymbol.MiterLimit = ;
}
//IMarkLineSymbol
ISimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbol();
simpleMarkerSymbol.Style = SimpleMarkerStyle.SMSCircle;
simpleMarkerSymbol.IsDrawOutline = true;
IMarkerSymbol markerSymbol = simpleMarkerSymbol as IMarkerSymbol;
markerSymbol.Size = ;
markerSymbol.Color = Color.Green;
IMarkerLineSymbol markerLineSymbol = new MarkerLineSymbol();
markerLineSymbol.MarkerSymbol = markerSymbol;
ILineSymbol lineSymbol2 = markerLineSymbol as ILineSymbol;
mulLayerLineSymbol.AddLayer(lineSymbol, false);
mulLayerLineSymbol.AddLayer(lineSymbol2, false);
lineElement.Symbol = mulLayerLineSymbol as ILineSymbol;
mapControlMain.ActiveView.GraphicsContainer.AddElement(lineElement);
mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
#endregion
}
|
2.5.4. 示例截图
最新文章
- 【转】ADO.NET中的五个主要对象
- 我们应该如何去了解JavaScript引擎的工作原理
- UIAutomator 编译
- 理解并使用.NET 4.5中的HttpClient
- 在phpwind内容页使用百度分享进行图片分享
- 利用 iptables 命令限制单个端口的并发连接数
- Java教程——CMD手动编译运行失败原因(高手略过)
- thinkphp M 和模板用法
- ASP.NET Identity
- Leetcode题解(十三)
- Java学习笔记9---类静态成员变量的存储位置及JVM的内存划分
- TortoiseSVN使用
- Node.js安装及环境配置之Windows篇---完美,win7已测
- docker遇到超时
- CSS3 box-sizing的作用
- DO-214 SMA、SMB、SMC封装
- IOS SDK -UITableView的奇葩特性
- Global.asax和HttpModule的执行顺序
- win8.1快速启动选项突然消失了怎么办?
- go语言基础之结构体比较和赋值
热门文章
- python解释器的下载和安装
- ESP8266-iot-2
- python23种设计模式
- 【Java】java中的compareTo和compare的区别
- Maven 项目使用开源中国镜像
- 【转】MOCK方法介绍
- if 判断
- C# 调接口
- 解决JAR包里面打开源代码都是乱码
- 【bzoj4709】[Jsoi2011]柠檬 决策单调性+dp