zoukankan      html  css  js  c++  java
  • ArcGIS Engine开发之视图同步

    数据视图与布局视图的同步

    数据视图与布局视图的同步,首先要保证数据的一致性,其次就是数据显示范围的一致性。该同步主要涉及IMapControl接口的OnMapReplaced事件和OnAfterScreenDraw事件。

    1)OnMapReplaced事件

    OnMapReplaced事件发生在MapControl的地图被替换后,即在IMapControl接口的Map被另一个地图替换时触发该事件。

    2)OnAfterScreenDraw事件

    OnAfterScreenDraw事件发生在MapControl内的地图完成绘制之后,即在IDisplayEvents接口的DisplayFinished事件之后被触发,而IDisplayEvents接口的DisplayFinished事件则在地图显示于屏幕时被触发。

    实现的思路:

    ①当数据视图的范围发生变化时,获得此时数据视图的范围。

    ②传到布局视图控件的视图中,同时使用数据复制的方法保证数据的一致性。

     1  #region 复制数据视图数据到布局视图中的方法封装
     2         private void CopyToLayoutMapControl()
     3         {
     4             IObjectCopy pObjectCopy = new ObjectCopyClass();
     5             object copyFormMap = mainMapControl.Map;
     6             object copiedMap = pObjectCopy.Copy(copyFormMap);//复制地图到conpiedMap 中
     7             object copyToMap = layoutMapControl.ActiveView.FocusMap;
     8             pObjectCopy.Overwrite(copiedMap, ref copyFormMap);//复制地图
     9             layoutMapControl.ActiveView.Refresh();
    10         }
    11         #endregion

    ③当数据视图控件加载地理数据重绘时,与其联动的布局视图控件的地图范围也需要发生相应的变化。在Mapcontrol控件中的OnAfterScreenDraw事件中获取当前数据视图范围,并传到pageLayoutMapcontrol控件的ActiveView对象的FocusMap中,同时调用数据复制的方法。

  • 相关阅读:
    新增模块--性能调测问题荟萃
    SSDB(网络LevelDB)-- 实际遇到的问题
    内存池--定长内存池
    分布式系统
    Tcp Ip -- tcpdump win窗口大小
    GCC手册学习(序)
    GNU--gprof使用总结
    几种TCP连接中出现RST的情况(转载)
    Tcp/Ip--正常情况下的三次握手,四次挥手
    关于cnblogs的排版
  • 原文地址:https://www.cnblogs.com/dongteng/p/5908992.html
Copyright © 2011-2022 走看看