使用ArcEngine提供接口对注记要素进行移动移动时,为实现实时显示注记的位置,做了以下处理
1.在Tool 的OnMouseDown 重载函数中,启动编辑操作,即StartOperation
2.在Tool的OnMouseMove重载函数中,实时保存IAnnotationFeature的几何,并刷新地图
3.在Tool 的OnMouseUp 重载函数中,停止编辑操作,即StopOperaion
在刷新地图时,为避免全图全要素刷新,代码中准确计算了刷新的矩形范围,并执行局部刷新,mapCtrl.PartialRefresh(esroViewDrawPhase.esriViewGraphics....)
需要注记的是,需要将注记图层转为ILayerDrawingPhase,并设置属性DrawPhase为esriDrawPhase.esriDPAnnotation,这样即可在仅刷新esriViewGraphics情况下实现注记要素的实时刷新。
另外,经过测试,将注记图层一直图层目录的最底下,同样可以提高刷新效率,初步猜测原因可能为,注记图层作为graphics层被最后刷新,放置最底下,其他矢量图层不再检查是否需要刷新了。
原文:https://www.cnblogs.com/gis-xdr/p/13181651.html