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

C# 整合 MapX 5.0 ActiveX 控制項開發 GIS 應用

     編輯:C# 入門

MapX 5.0 是 MapInfo 推出的地圖控制元件,可在 .NET 環境透過 ActiveX 互通性直接使用。本文記錄一次實作測試,展示如何在 Windows Forms 專案引用 AxMapXLib,並實作基本地圖操作:縮放、漫游、標註、量測距離/面積/最短路徑等。

專案準備

  1. 專案加入參考:COM 分頁選取 MapX 5.0 Control,Visual Studio 自動產生 AxMapXLib 與 MapXLib 互通組件。
  2. 工具箱會出現 AxMap 元件,拖放兩個至表單(axMap1、axMap2)分別顯示不同圖層。

核心初始化程式碼

public partial class FrmMain : Form
{
    private AxMapXLib.AxMap axMap1, axMap2;
    private double zoom, centerX, centerY;

    public FrmMain()
    {
        InitializeComponent();

        // 記錄初始狀態供重新整理用
        zoom = axMap1.Zoom;
        centerX = axMap1.CenterX;
        centerY = axMap1.CenterY;

        // 建立自訂工具:距離量測(10)、面積量測(11)
        axMap1.CreateCustomTool(10, MapXLib.ToolTypeConstants.miToolTypePoly,
            MapXLib.CursorConstants.miCrossCursor, null, null, false);
        axMap1.CreateCustomTool(11, MapXLib.ToolTypeConstants.miToolTypePolygon,
            MapXLib.CursorConstants.miCrossCursor, null, null, false);
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        axMap1.GeoSet = @"D:\Data\CHINA.GST";
        axMap2.GeoSet = Path.Combine(Application.StartupPath, "Data", "local.gst");

        axMap1.TitleText = "中國";
        axMap2.TitleText = "區域圖";
    }
}

工具列按鈕對應功能

  • tbfangda / tbbianxiao:放大/縮小
  • tbmanyou:漫游
  • tbbiaozhu:標註
  • tbjuli:距離量測(呼叫自訂工具 10)
  • tbmianji:面積量測(呼叫自訂工具 11)
  • tbzuiduan:最短路徑分析
  • tbshuaxin:重新整理地圖(還原初始 Zoom/CenterX/Y)
  • tbxiangxi:查詢屬性細節

關鍵技術點

  1. GeoSet 屬性:指定 .gst 地圖資料集路徑,支援相對/絕對路徑。
  2. CreateCustomTool:依 ToolTypeConstants 定義量測、繪圖等互動模式。
  3. 事件驅動:MouseDown、MouseMove、SelectionChanged 等事件處理使用者互動。
  4. 圖層控制:LayerCount、get_Layer(i) 取得 Layer 物件,可調整可見度、標註欄位、渲染樣式。

注意事項

  • MapX 5.0 為 32 位元 ActiveX,專案需設定 Prefer 32-bit 或目標平台 x86。
  • 部署機器需安裝 MapX 5.0 Runtime,並登錄 MapX.ocx。
  • 大量資料渲染時建議啟用空間索引與圖層篩選以維持效能。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved