ArcGIS|ArcGIS Engine开发之视图同步
数据视图与布局视图的同步数据视图与布局视图的同步,首先要保证数据的一致性,其次就是数据显示范围的一致性。该同步主要涉及IMapControl接口的OnMapReplaced事件和OnAfterScreenDraw事件。
1)OnMapReplaced事件
OnMapReplaced事件发生在MapControl的地图被替换后,即在IMapControl接口的Map被另一个地图替换时触发该事件。
2)OnAfterScreenDraw事件
OnAfterScreenDraw事件发生在MapControl内的地图完成绘制之后,即在IDisplayEvents接口的DisplayFinished事件之后被触发,而IDisplayEvents接口的DisplayFinished事件则在地图显示于屏幕时被触发。
实现的思路:
①当数据视图的范围发生变化时,获得此时数据视图的范围。
【ArcGIS|ArcGIS Engine开发之视图同步】②传到布局视图控件的视图中,同时使用数据复制的方法保证数据的一致性。
1#region 复制数据视图数据到布局视图中的方法封装 2private void CopyToLayoutMapControl() 3{ 4IObjectCopy pObjectCopy = new ObjectCopyClass(); 5object copyFormMap = mainMapControl.Map; 6object copiedMap = pObjectCopy.Copy(copyFormMap); //复制地图到conpiedMap 中 7object copyToMap = layoutMapControl.ActiveView.FocusMap; 8pObjectCopy.Overwrite(copiedMap, ref copyFormMap); //复制地图 9layoutMapControl.ActiveView.Refresh(); 10} 11#endregion
③当数据视图控件加载地理数据重绘时,与其联动的布局视图控件的地图范围也需要发生相应的变化。在Mapcontrol控件中的OnAfterScreenDraw事件中获取当前数据视图范围,并传到pageLayoutMapcontrol控件的ActiveView对象的FocusMap中,同时调用数据复制的方法。
推荐阅读
- 开学第一天(下)
- 20170612时间和注意力开销记录
- 深入理解Go之generate
- 开花店的前景怎么样()
- 眉头开了
- 上班后阅读开始变成一件奢侈的事
- 小影写在2018九月开学季
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 从蓦然回首到花开在眼前,都是为了更好的明天。
- 流转