转自
基本步骤
构建形状
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);
-----------------------------------------------------------------------------------------------------------
其他方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 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 ); } |