zoukankan      html  css  js  c++  java
  • ArcGIS Engine 线段绘制

    转自ArcGIS Engine 线段绘制研究

    基本步骤

    构建形状

    1. 创建 IPoint
    IPoint m_Point = new PointClass();
    m_Point.PutCoords(x, y);

    2. 创建 IPointCollection
    IPointCollection m_PointCollection = new PolylineClass();
    m_PointCollection.AddPoint(m_Point, ref Type.Missing, ref Type.Missing);

    3. 创建 IPolyline
    IPolyline m_Polyline = new PolylineClass();
    m_Polyline = m_PointCollection as IPolyline;

    4. 创建 IElement
    // Element 不能实例化,需要用其派生类实例化
    IElement m_Element = m_SimpleLineSymbol as IElement;
    m_Element.Geometry = m_Polyline;

    设置形状样式
    1. 创建 ISimpleLineSymbol
    ISimpleLineSymbol m_SimpleLineSymbol = new SimpleLineSymbolClass();

    2. 创建 ILineElement
    ILineElement m_LineElement = new LineElementClass();
    m_LineElement.Symbol = m_SimpleLineSymbol;

    加载到地图
    IMap m_Map = axMapControl1.Map;
    IActiveView m_ActiveView = m_Map as IActiveView;
    IGraphicsContainer m_Container = m_Map as IGraphicsContainer;

    m_Container.AddElement(m_Element, 0);

    m_Active.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);


    -----------------------------------------------------------------------------------------------------------

    其他方法

    private void DrawLine()  
    {  
                    ILineElement pLineElement;  
                    IElement pLElement;  
          
                    IPolyline pLine;  
          
                    RgbColor pColor = new RgbColor();  
                    pColor.Red = 0;  
                    pColor.Green = 0;  
                    pColor.Blue = 255;  
                      
                    ISimpleLineSymbol pSimpleLineSymbol = new SimpleLineSymbolClass();  
                    pSimpleLineSymbol.Color = pColor;  
                    pSimpleLineSymbol.Width = 5;  
          
                    pLineElement = new LineElementClass();  
                    pLineElement.Symbol = pSimpleLineSymbol;  
          
                    pLElement = pLineElement as IElement;  
          
                    IRubberBand pRubberBand;  
                    pRubberBand = new RubberLineClass();  
                    pLine = pRubberBand.TrackNew(axMapControl1.ActiveView.ScreenDisplay, null) as IPolyline;  
          
                    pLElement.Geometry = pLine;  
          
                    IGraphicsContainer pGraphicsContainer;  
                    pGraphicsContainer = axMapControl1.ActiveView as IGraphicsContainer;//把地图的当前view作为图片的容器  
                      
                    pGraphicsContainer.AddElement(pLElement, 0);//把刚刚的element转到容器上  
                axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);  
    
    }      
    
  • 相关阅读:
    Node借住N进行升级和降级
    Token bucket
    plsql期末复习
    ssl证书参考 certbot
    浙大保研2019年上机题 7-4 Index of Popularity (30分)
    浙大保研2019年上机题 7-3 Is It An AVL Tree (25分)
    浙大保研2019年上机题 7-2 Zigzag Sequence (25分)
    浙大保研2019年上机题 7-1 Happy Numbers (20分)
    写了个shell脚本(刚装完linux可以执行一下)
    网络图指标的计算方法(软件项目管理)
  • 原文地址:https://www.cnblogs.com/arxive/p/6816945.html
Copyright © 2011-2022 走看看