Engine中的PartialRefresh可否只刷新指定的矢量图层,而不让其下面的栅格图层跟着刷新?

当前地图中有多个矢量和栅格图层,在对单层矢量进行局部刷新IActiveView.PartialRefresh(esriViewDrawPhase.esriVeiwGeography,(object)featureLayer,null) ,其余矢量数据不会刷新,但是栅格数据会刷新,我想在刷新矢量的时候,栅格数据不刷新,该如何实现,谢谢!
已邀请:

朱新颖

赞同来自: tornadotianya

【解决办法】:
1,首先获取指定的矢量图层,设置ILayer.Cached = true;为该层设置缓存;
2,然后获取该图层的CacheID,使用IActiveView.get_ScreenCacheID();方法;
3,使用IScreenDisplay.Invalidate刷新该Cache即可。



ILayer layer = axMapControl1.get_Layer(0);
layer.Cached = true;
IActiveView activeView = axMapControl1.ActiveView;
short cacheID = activeView.get_ScreenCacheID(esriViewDrawPhase.esriViewGeography, (object)layer);
activeView.ScreenDisplay.Invalidate(null, false, cacheID);

要回复问题请先登录注册