ArcEngine 画图

方法一:

private void DrawMapShape(IGeometry geometry)
{
    ISimpleFillSymbol simpleFillSymbol;
    simpleFillSymbol = new SimpleFillSymbolClass();
    simpleFillSymbol.Style = esriSimpleFillStyle.esriSFSNull;

    IRgbColor color = new RgbColorClass();
    color.Green = 137;
    color.Blue = 209;
    ILineSymbol line = new SimpleLineSymbolClass();
    line.Color = color;
    line.Width = 3;
    simpleFillSymbol.Outline = line;
    object symbol = simpleFillSymbol;
    base.m_pMapCtrl.DrawShape(geometry, ref symbol);
}

方法二:

private void AddElement(IGeometry geometry)
{
    IPolygonElement polygonElement;
    polygonElement = new PolygonElementClass();
    IElement element;
    element = polygonElement as IElement;
    element.Geometry = geometry;
    IGraphicsContainer graphicsContainer = base.m_pMapCtrl.Map as IGraphicsContainer;
    graphicsContainer.AddElement((IElement)polygonElement, 0);
    base.m_pMapCtrl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
}

方法三:

private void DrawEnvelope(IEnvelope newEnvelope)
{
    short cacheID = base.m_pMapCtrl.ActiveView.ScreenDisplay.AddCache();

    ISimpleFillSymbol fillSymbol = new SimpleFillSymbolClass();
    IRgbColor rgbColor = new RgbColorClass();
    rgbColor.Red = 255;
    fillSymbol.Color = rgbColor;

    base.m_pMapCtrl.ActiveView.ScreenDisplay.StartDrawing(base.m_pMapCtrl.ActiveView.ScreenDisplay.hDC, cacheID);
    base.m_pMapCtrl.ActiveView.ScreenDisplay.SetSymbol((ISymbol)fillSymbol);
    base.m_pMapCtrl.ActiveView.ScreenDisplay.DrawRectangle(newEnvelope);
    base.m_pMapCtrl.ActiveView.ScreenDisplay.FinishDrawing();
}

转载自:https://blog.csdn.net/huronzhu/article/details/25378891

You may also like...

退出移动版