电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

c+ArcEngine93实现实时显示测距结果功能

c+ArcEngine93实现实时显示测距结果功能_第1页
1/23
c+ArcEngine93实现实时显示测距结果功能_第2页
2/23
c+ArcEngine93实现实时显示测距结果功能_第3页
3/23
c#+ArcEngine93 实现实时显示测距结果功能 利用ArcEngine 实现距离量测,面积量测的功能已很简单,相信众多的ArcGIS 爱好者都能写. 但单纯的实现功能总觉得欠什么.本人喜欢改代码,喜欢优化代码,在原有的功能基础上总喜欢"润色",使之更好看.前一整子在玩 skyline 时看到 skyline 的测距功能能实时显示量测的距离,于是联想到之前自己用C#+ArcEngine 写的测距功能.何不也优化一下自己代码? 想到就做到.最近手有点痒,算练练手. 废话少说,先附上效果图: 说明: 1.本功能的特点在于在量测的过称当中实时显示量测距离,并将结果实时显示在测距上方.在显示窗体上也显示量测的总距离. 要点: 1. INewLineFeedback 负责画线; 2. 在OnMouseDown 事件中计算量测距离,并向 GraphicsContainer 添加线和节点的Element; 3.在OnMouseUp 事件中实时计算距离随鼠标移动后产生的新距离. 4. 将节点,量测值,线的element 都分别存入到节点组和轨迹线组(IGroupElement),即用IGroupElement 同一管理这些 element; 最后将这些 groupelement 又添加到一个总的groupelement.这样做的目的在于好控制这些 element,特别是启动新的量测或取消量测功能时可以控制这些 element,而不必去用 IGraphicsContainer.DeleteAllElements 来清除这些 element,使用 IGraphicsContainer.DeleteAllElements 会将所有的 element删除. 5. 量测值 element 为 ITextElement, 由于他停靠在轨迹线的上方,因此需要对量测值 element 进行一定角度的旋转,旋转角度由轨迹线的方向角决定. 6. 绘制 element 之后的刷新问题也是比较重要的. 刷新范围一定要控制好,太小了,添加的element 显示不出来,太大了,浪费. (实在不好控制就刷新整个 extent 吧,呵呵) 核心代码如下: 1. TrackLine 类 //=================================功能测距========================== //描述:实时显示测量距离,节点位置,总长度 //编程: Jin 开发时间:2009.8.10-2009.8.11 //特点:实时计算量测距离. //缺点: 由于采用 element 做为显示内容,地图进行放大缩小操作后并不能很好 // 控制量测值 element 和轨迹线 element 之间的距离间隔. //=================================================================== using System; using System.Drawing; using System.Runtime.InteropServices; using ESRI.ArcGIS.ADF.BaseClasses; using ESRI.ArcGI...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

c+ArcEngine93实现实时显示测距结果功能

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部