ArcGIS Engine 中 线加箭头

        void AddArrowElement(IGeometry pGeometry, IActiveView pActiveView)
        {
            IRgbColor pColor = new RgbColorClass();
            pColor.Red = 255;

            ICartographicLineSymbol pCartoLineSymbol = new CartographicLineSymbolClass();
            pCartoLineSymbol.Cap = esriLineCapStyle.esriLCSRound;

            ILineProperties pLineProp = pCartoLineSymbol as ILineProperties;
            pLineProp.DecorationOnTop = true;

            ILineDecoration pLineDecoration = new LineDecorationClass();
            ISimpleLineDecorationElement pSimpleLineDecoElem = new SimpleLineDecorationElementClass();
            pSimpleLineDecoElem.AddPosition(1);
            IArrowMarkerSymbol pArrowMarkerSym = new ArrowMarkerSymbolClass();
            pArrowMarkerSym.Size = 8;
            pArrowMarkerSym.Color = pColor;
            pSimpleLineDecoElem.MarkerSymbol = pArrowMarkerSym as IMarkerSymbol;
            pLineDecoration.AddElement(pSimpleLineDecoElem as ILineDecorationElement);
            pLineProp.LineDecoration = pLineDecoration;

            ILineSymbol pLineSymbol = pCartoLineSymbol as ILineSymbol;

            pLineSymbol.Color = pColor;
            pLineSymbol.Width = 1;

            ILineElement pLineElem = new LineElementClass();
            pLineElem.Symbol = pLineSymbol;
            IElement pElem = pLineElem as IElement;
            pElem.Geometry = pGeometry;

            IGraphicsContainer pGraphicsContainer = mCtrl.Map as IGraphicsContainer;
            pGraphicsContainer.AddElement(pElem, 0);

            mCtrl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, nullnull);
        }
posted @ 2015-03-24 16:32  94cool  阅读(2620)  评论(0编辑  收藏  举报