ArcEngine中IActiveView的范围解释

很多ArcEngine二次开发人员搞不清楚ActiveView的范围到底指的是哪个范围。笔者昨天遇到一个视图刷新的效率问题,于是专门看了一下这一块的官方介绍。

ArcObjects的官方文档上对IActiveView接口的介绍是下面的一句话:

Provides access to members that control the active view – the main application window.

并配了一张图,说明ActiveView与相关对象的关系。


根据以上解释,我搞清楚了。

打个比方,你打开一个100页的Word文档,当前显示的是第1页,那么,你只能看到第1页的80左右,那么你的ActiveView既不是这第1页,也不是这第1页80%的可见部分,而是整个文档的活动部分,即100页的范围。这个ActiveView的Extent,包括可见范围与不可见范围。

因此,PartialRefresh时,指定了三个参数,以达到个性化地按需刷新的目的。

第一个参数Phase,指定的是刷新的层,即可见的层面上,你要刷新的是哪个类型的对象,如地图格网、图层、选择的要素、标签、绘制的符号、选择的图形。

第二个参数Data,指定的是刷新的具体对象,如指定Phase为图层,则Data可为具体的某一个图层。

第三个参数Envelope,指定的是刷新的范围,比如当前显示了16个图幅,但我可以指定只刷新其中一个图幅的范围。

通过三个参数的恰当设置,可以实现按需刷新,且效率更有保证。

转载自:https://blog.csdn.net/a_dev/article/details/70049125

You may also like...