首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

MapInfo 多地圖聯動實作:同步縮放與拖曳的 MDI 視窗架構

     編輯:關於ASP.NET

效果展示

多地圖聯動示意圖

實現單一視窗載入最多四個地圖,各地圖支援獨立資料顯示,且縮放、拖曳操作可即時同步至其他地圖。

架構設計

  1. 封裝 UserControl:建立 ViewMap : UserControl,內含地圖控件、資料載入、圖元渲染等所有邏輯。
  2. 事件宣告:在 ViewMap 中定義 MapZoomed、MapPanned 等自訂事件。
  3. MDI 父視窗協調:父視窗持有多個 ViewMap 實例,訂閱其事件並在事件處理器中呼叫其他實例的同步方法。

關鍵程式碼

public partial class ViewMap : UserControl 
{
    public event Action<double, double> MapZoomed; // 縮放等級、中心點
    public event Action<Point> MapPanned;         // 平移位移

    private void OnMapZoomed(double level, Point center) 
    {
        MapZoomed?.Invoke(level, center);
    }
    // 其他事件觸發...
}

父視窗處理:

private void ViewMap_MapZoomed(double level, Point center) 
{
    foreach (var vm in mapViews) 
    {
        if (vm != sender) vm.SyncZoom(level, center);
    }
}

此架構確保各地圖資料隔離,操作同步流暢。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved