c#+ArcEngine93 实现实时显示测距结果功能 利用ArcEngine 实现距离量测,面积量测的功能已很简单,相信众多的ArcGIS 爱好者都能写
但单纯的实现功能总觉得欠什么
本人喜欢改代码,喜欢优化代码,在原有的功能基础上总喜欢"润色",使之更好看
前一整子在玩 skyline 时看到 skyline 的测距功能能实时显示量测的距离,于是联想到之前自己用C#+ArcEngine 写的测距功能
何不也优化一下自己代码
最近手有点痒,算练练手
废话少说,先附上效果图: 说明: 1
本功能的特点在于在量测的过称当中实时显示量测距离,并将结果实时显示在测距上方
在显示窗体上也显示量测的总距离
INewLineFeedback 负责画线; 2
在OnMouseDown 事件中计算量测距离,并向 GraphicsContainer 添加线和节点的Element; 3
在OnMouseUp 事件中实时计算距离随鼠标移动后产生的新距离
将节点,量测值,线的element 都分别存入到节点组和轨迹线组(IGroupElement),即用IGroupElement 同一管理这些 element; 最后将这些 groupelement 又添加到一个总的groupelement
这样做的目的在于好控制这些 element,特别是启动新的量测或取消量测功能时可以控制这些 element,而不必去用 IGraphicsContainer
DeleteAllElements 来清除这些 element,使用 IGraphicsContainer
DeleteAllElements 会将所有的 element删除
量测值 element 为 ITextElement, 由于他停靠在轨迹线的上方,因此需要对量测值 element 进行一定角度的