zoukankan      html  css  js  c++  java
  • PIE SDK线元素的绘制

     

    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

    示例代码

     1         /// <summary>
     2         /// 绘制简单样式线符号的线元素
     3         /// </summary>
     4         /// <param name="sender"></param>
     5         /// <param name="e"></param>
     6     
     7         private void toolStripButton_DrawSimpleSyLine_Click(object sender, EventArgs e)
     8         { //IPolyline polyline = mapControl1.TrackLine();
     9             //定义空间位置
    10             IPointCollection polyLine = new Polyline();
    11             polyLine.AddPoint(100, 100, 0);
    12             polyLine.AddPoint(500, 400, 0);
    13             //定义线元素
    14             ILineElement lineElement = new PIE.Carto.LineElement(); 
    15             lineElement.Geometry = polyLine as IGeometry;
    16 
    17             ISimpleLineSymbol simpleLineSymbol = new SimpleLineSymbol();
    18             simpleLineSymbol.Style = SimpleLineStyle.SLSDashDot;
    19 
    20             //设置符号的颜色,线宽,线帽样式,连接样式,偏移大小
    21             ILineSymbol lineSymbol = simpleLineSymbol as ILineSymbol;
    22             lineSymbol.Color = Color.Green;
    23             lineSymbol.Width = 2;
    24             lineSymbol.Cap = LineCapStyle.LCSRound;
    25             lineSymbol.Join = LineJoinStyle.LJSBevel;
    26             //  lineSymbol.Offset = 20;
    27 
    28             lineElement.Symbol = lineSymbol;
    29             mapControlMain.ActiveView.GraphicsContainer.AddElement(lineElement);
    30             mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);         
    31         }   
    View Code

    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

    示例代码

      

     1         /// <summary>
     2         /// 点状填充的线绘制
     3         /// </summary>
     4         /// <param name="sender"></param>
     5         /// <param name="e"></param>
     6         private void toolStripButton_DrawMarkerSyLine_Click(object sender, EventArgs e)
     7         {
     8             //IPolyline polyline = mapControl1.TrackLine();
     9             //定义空间位置
    10             IPointCollection polyLine = new Polyline();
    11             polyLine.AddPoint(100, 100, 0);
    12             polyLine.AddPoint(500, 400, 0);
    13             //定义线元素
    14             ILineElement lineElement = new PIE.Carto.LineElement(); 
    15             lineElement.Geometry = polyLine as IGeometry;
    16 
    17             IMarkerLineSymbol markerLineSymbol = new MarkerLineSymbol();
    18             markerLineSymbol.Interval = 3;
    19             //设置线状符号IMarkerLineSymbol的点符号样式
    20 
    21             ISimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbol();
    22             simpleMarkerSymbol.IsDrawOutline = true;
    23             simpleMarkerSymbol.Style = SimpleMarkerStyle.SMSX;
    24             IMarkerSymbol markerSymbol = simpleMarkerSymbol as IMarkerSymbol;
    25             markerSymbol.Color = System.Drawing.Color.Green;
    26             markerSymbol.Size = 5;
    27             markerSymbol.XOffset = 0;
    28             markerSymbol.YOffset = 0;
    29             markerLineSymbol.MarkerSymbol = markerSymbol;
    30 
    31             ILineSymbol lineSymbol = markerLineSymbol as ILineSymbol;
    32             lineElement.Symbol = lineSymbol;
    33             mapControlMain.ActiveView.GraphicsContainer.AddElement(lineElement);
    34             mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll); 
    35         }    
    View Code

    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

    示例代码

     1          /// </summary>
     2         /// <param name="sender"></param>
     3         /// <param name="e"></param>
     4         private void toolStripButton_DrawCartoSyLine_Click(object sender, EventArgs e)
     5         {
     6             //IPolyline polyline = mapControl1.TrackLine();
     7             //定义空间位置
     8             IPointCollection polyLine = new Polyline();
     9             polyLine.AddPoint(100, 100, 0);
    10             polyLine.AddPoint(500, 400, 0);
    11             //定义线元素
    12             ILineElement lineElement = new PIE.Carto.LineElement(); 
    13             lineElement.Geometry = polyLine as IGeometry;
    14 
    15             ICartographicLineSymbol cartoLineSymbol = new CartographicLineSymbol();
    16             IList<double> IList = new List<double>();
    17             IList.Add(1);
    18             IList.Add(2);
    19             IList.Add(3);
    20             cartoLineSymbol.DashPattern = IList;//制图线规则
    21             cartoLineSymbol.Width = 4;
    22             cartoLineSymbol.Interval = 3;
    23             ///设置符号颜色,偏移量,线帽样式,连接样式
    24             ILineSymbol lineSymbol = cartoLineSymbol as ILineSymbol;
    25             lineSymbol.Color = Color.Green;
    26             lineSymbol.Offset = 20;
    27             lineSymbol.Cap = LineCapStyle.LCSRound;
    28             lineSymbol.Join = LineJoinStyle.LJSRound;
    29      
    30             lineElement.Symbol = lineSymbol;
    31             mapControlMain.ActiveView.GraphicsContainer.AddElement(lineElement);
    32             mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);   
    33         }    
    View Code

    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

    示例代码

     1         /// <summary>
     2         /// 图片为填充背景的线绘制
     3         /// </summary>
     4         /// <param name="sender"></param>
     5         /// <param name="e"></param>
     6         private void toolStripButton_DrawPicSyLine_Click(object sender, EventArgs e)
     7         {
     8             //IPolyline polyline = mapControl1.TrackLine();
     9             //定义空间位置
    10             IPointCollection polyLine = new Polyline();
    11             polyLine.AddPoint(100, 100, 0);
    12             polyLine.AddPoint(500, 400, 0);
    13             //定义线元素
    14             ILineElement lineElement = new PIE.Carto.LineElement(); 
    15             lineElement.Geometry = polyLine as IGeometry;
    16 
    17             IPictureLineSymbol picLineSymbol = new PictureLineSymbol();
    18             OpenFileDialog openFileDialog = new OpenFileDialog();
    19             openFileDialog.Filter = "Picture File|*.bmp";
    20             openFileDialog.Title = "请选择一整图片:";
    21             if (openFileDialog.ShowDialog() != DialogResult.OK) return;
    22             bool ok = picLineSymbol.CreateFromFile(openFileDialog.FileName);
    23             if (ok)
    24             {
    25                 picLineSymbol.XScale = 0.5;
    26                 picLineSymbol.YScale = 0.5;
    27 
    28                 ILineSymbol lineSymbol = picLineSymbol as ILineSymbol;
    29                 lineSymbol.Width = 50;
    30                 lineSymbol.Offset = 3;
    31                 lineSymbol.MiterLimit = 4;
    32                 lineElement.Symbol = lineSymbol;
    33                 mapControlMain.ActiveView.GraphicsContainer.AddElement(lineElement);
    34                 mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);                
    35             }   
    36         }
    View Code

    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

    示例代码

     1    /// <summary>
     2         /// 多个符号叠加生成的线样式的线绘制
     3         /// </summary>
     4         /// <param name="sender"></param>
     5         /// <param name="e"></param>
     6         private void toolStripButton_DrawMultiSyLine_Click(object sender, EventArgs e)
     7         {
     8             //定义空间位置
     9             IPointCollection polyLine = new Polyline();
    10             polyLine.AddPoint(100, 100, 0);
    11             polyLine.AddPoint(500, 400, 0);
    12             //定义线元素
    13             ILineElement lineElement = new PIE.Carto.LineElement(); 
    14             lineElement.Geometry = polyLine as IGeometry;
    15 
    16             #region IMultiLayerLineSymbol多个符号生成的线组成的符号
    17             IMultiLayerLineSymbol mulLayerLineSymbol = new MultiLayerLineSymbol();
    18             //IPictureLineSymbol图片符号
    19             IPictureLineSymbol picLineSymbol = new PictureLineSymbol();
    20             OpenFileDialog openFileDialog = new OpenFileDialog();
    21             openFileDialog.Filter = "Picture File|*.bmp";
    22             openFileDialog.Title = "请选择一整图片:";
    23             if (openFileDialog.ShowDialog() != DialogResult.OK) return;
    24             bool ok = picLineSymbol.CreateFromFile(openFileDialog.FileName);
    25             ILineSymbol lineSymbol = picLineSymbol as ILineSymbol;
    26             if (ok)
    27             {
    28                 picLineSymbol.XScale = 0.5;
    29                 picLineSymbol.YScale = 0.5;
    30                 lineSymbol.Width = 60;
    31                 lineSymbol.Offset = 3;
    32                 lineSymbol.MiterLimit = 4;
    33             }
    34 
    35             //IMarkLineSymbol
    36             ISimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbol();
    37             simpleMarkerSymbol.Style = SimpleMarkerStyle.SMSCircle;
    38             simpleMarkerSymbol.IsDrawOutline = true;
    39             IMarkerSymbol markerSymbol = simpleMarkerSymbol as IMarkerSymbol;
    40             markerSymbol.Size = 10;
    41             markerSymbol.Color = Color.Green;
    42 
    43             IMarkerLineSymbol markerLineSymbol = new MarkerLineSymbol();
    44             markerLineSymbol.MarkerSymbol = markerSymbol;
    45 
    46             ILineSymbol lineSymbol2 = markerLineSymbol as ILineSymbol;
    47             mulLayerLineSymbol.AddLayer(lineSymbol, false);
    48             mulLayerLineSymbol.AddLayer(lineSymbol2, false);
    49 
    50             lineElement.Symbol = mulLayerLineSymbol as ILineSymbol;
    51             mapControlMain.ActiveView.GraphicsContainer.AddElement(lineElement);
    52             mapControlMain.PartialRefresh(ViewDrawPhaseType.ViewAll);
    53             #endregion
    54         }
    View Code

    2.5.4. 示例截图

  • 相关阅读:
    Eclipse 中生成帮助文档 (javadoc) 迎客
    网管利器:七大免费网络工具 迎客
    oracle 11g 学习笔记 10_27
    oracle 11g 学习笔记 10_29
    oracle 11g学习笔记 2012_10_22
    oracle 11g 学习笔记 2012_10_25(2)
    oracle 11g 学习笔记 10_26
    oracle 11g 学习笔记 2012_10_24(1)
    oracle 11g 学习笔记2012_10_23(2)
    oracle 11g 学习笔记 2012_10_25(a)
  • 原文地址:https://www.cnblogs.com/PIESat/p/10169961.html
Copyright © 2011-2022 走看看