基本步骤
构建形状
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
);
}
|