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中,同時調用數據復制的方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM