在进行批量产图过程中,地图格网一般是在模板中已添加完成。但进行缩放操作后,出现了问题,格网跟着缩放范围跑了,并未铺满整个视图范围。这个问题以后的同事就遇到过了,但一直没有解决,今天也做到这一步了,想把它解决了。
解决方式
在网上并未查到类似的问题,难道其他人就没遇到过?
方案一:
以前解决方式是在不使用模板的格网,而是在出图时临时创建,这样就会避免这个问题,还可以控制格网横向和纵向的数量,使之不会因缩放操作让格网数变得过多或过少。
方案二:
为什么在ArcMap里缩放一下没有问题,一定是做了某种处理,我尝试了刷新元素的方法,没有效果。最后使用了激活元素的方法解决了。
代码如下:
private static void ActivePageLayout(IActiveView activeView) { IGraphicsContainer graphicsContainer = activeView.GraphicsContainer; graphicsContainer.Reset(); IDisplay pDisplay = activeView.ScreenDisplay as IDisplay; IElement element = graphicsContainer.Next(); while (element != null) { if (element is IMapFrame) { element.Activate(pDisplay); } element = graphicsContainer.Next(); } }
引申问题
由于模板固定了格网数,可能会导致因缩放操作让格网数变得过多或过少,所以,最好的方式是采集方案二,并根据幅面大小,地理范围等对格网据进行修改。