免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1610|回复: 4
收起左侧

[二次开发] arcgis engine画出的箭头顶点不在直线末端

[复制链接]

1

主题

245

铜板

1

好友

实习生

Rank: 1

积分
9
发表于 2019-12-17 15:16 | 显示全部楼层 |阅读模式
在地图上画出的箭头如下图,请问要怎么改?
JT.jpg
代码为:
public static void AddArrowElement()
        {
            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.Style = esriArrowMarkerStyle.esriAMSPlain;
            pArrowMarkerSym.Size = 40;
            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 = 5;

            ILineElement pLineElem = new LineElementClass();
            pLineElem.Symbol = pLineSymbol;
            IElement pElem = pLineElem as IElement;
            IRubberBand pRubberBand;
            pRubberBand = new RubberLineClass();
            IPolyline pLine;
            pLine = pRubberBand.TrackNew(MainWindow.MainWindowObject.axMapControl.ActiveView.ScreenDisplay, null) as IPolyline;
            pElem.Geometry = pLine;

            IGraphicsContainer pGraphicsContainer;
            pGraphicsContainer = MainWindow.MainWindowObject.axMapControl.ActiveView as IGraphicsContainer; //把地图的当前view作为图片的容器  

            pGraphicsContainer.AddElement(pElem, 0);//把刚刚的element转到容器上  
            MainWindow.MainWindowObject.axMapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
        }

141

主题

980万

铜板

3万

好友

管理员

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
622014
发表于 2019-12-17 15:34 | 显示全部楼层
请论坛各位高手回答下楼主的提问,会奖励相应的铜板和威望的哦!
回复 支持 反对

使用道具 举报

9

主题

6252

铜板

10

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
621
发表于 2019-12-18 17:02 | 显示全部楼层
可以自己做一个箭头,用element加入
回复 支持 反对

使用道具 举报

0

主题

1684

铜板

1

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
643
发表于 2022-2-16 10:54 | 显示全部楼层
感谢分享
回复

使用道具 举报

37

主题

2万

铜板

111

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
5776
发表于 2022-2-22 16:47 | 显示全部楼层
进来学习学习,看看
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表