在製作 大安大甲溪聯通管工程地圖 的過程中,我遇到了一個棘手的問題。

我手上有一張非常清楚的官方工程示意圖(JPG 格式),標示了紅色、紫色、黃色三條輸水管線的走向。但我沒有 KML 或 Shapefile 原始檔

如果是在傳統 GIS 軟體(如 QGIS)中,我需要進行「地理對位 (Georeferencing)」,把圖片貼在底圖上,然後用滑鼠慢慢描繪。但在 AI 時代,我嘗試了一個更懶(也更聰明)的方法:讓 Agent 幫我「看圖轉碼」

🧠 AI 的解題思路

我給了 Agent 這張圖,並問它:「這張圖包含幾條線,是否有辦法轉成 WKT 表示?」

Agent 當然無法直接從圖片像素中「讀」出經緯度,但它採取了一套非常有邏輯的推演策略:

1. 視覺理解與拆解 (Visual Breakdown)

Agent 首先辨識出圖中的三條主要路徑:

  • 紅線 (大甲溪輸水管):沿河岸走,從右下角石岡壩連到左側。
  • 紫線 (鯉魚潭第二原水管):從右上角水庫「直線穿越」山區到左側。
  • 黃線 (后里圳送水管):連接上述兩者的小短線。

2. 座標錨定 (Geo-referencing Anchors)

這是最關鍵的一步。Agent 知道它無法憑空猜座標,於是它利用我們在前一個階段已經建立好的「已知地標」作為錨點 (Anchors)

  • 錨點 A:石岡壩 (24.2797, 120.7691) -> 紅線起點
  • 錨點 B:鯉魚潭水庫 (24.3415, 120.7819) -> 紫線起點
  • 錨點 C:后里第一淨水場 (24.3195, 120.7359) -> 紫線/紅線終點

3. 路徑模擬 (Path Simulation via Waypoints)

有了起終點,中間怎麼走?Agent 沒有選擇畫一條無聊的直線,而是根據圖片特徵進行推估

  • 紅線:圖片顯示沿著大甲溪左岸。Agent 就在 Google Maps 底層邏輯中抓取了幾個「河岸轉折點」作為中繼點。
  • 紫線:圖片顯示穿越「枕頭山」與「大安溪」。Agent 於是加入了一個「枕頭山座標」與「水管橋座標」作為中繼點,形成一條合理的折線。

4. 程式化生成 (Code to WKT)

最後,Agent 不需要我手動輸入任何數字。它直接寫了一段 Python 腳本,將這些推估出的座標點 (Waypoints)組合成標準的 GIS 格式——LineString

# Agent 自動生成的路徑邏輯
path_purple = [
    (24.3415, 120.7819), # 鯉魚潭水庫 (已知)
    (24.3343, 120.7660), # 枕頭山 (中間點推估)
    (24.3258, 120.7516), # 大安溪水管橋 (中間點推估)
    (24.3195, 120.7359)  # 后里第一淨水場 (已知)
]
# 自動轉為 WKT: LINESTRING(120.7819 24.3415, 120.766 24.3343, ...)

🚀 成果與心得

不到 5 分鐘,我就獲得了三條具備地理座標的 LineString 數據,並成功寫入 WalkGIS 資料庫。在地圖上,這些線條精準地串連了各個設施,視覺效果與原始工程圖高度吻合。

這給了我們什麼啟示?

  1. AI 是最好的 GIS 助理:雖然它不能取代高精度的測繪,但對於「示意圖數位化」這種場景,它的效率是人類的 10 倍。
  2. 錨點思維:與 AI 協作時,提供「已知定錨點」非常重要。你給的已知點越多,它「猜」出來的中間路徑就越準。
  3. WKT 是通用語言:透過文字化的 WKT (Well-Known Text),我們可以輕鬆地讓 AI 處理複雜的幾何圖形。

現在,這張「大安大甲溪聯通管地圖」不僅有景點,更有了一目了然的血管網絡。


🤖 AI 協作宣告

  • 本文內容: 由人類作者提供核心經驗與技術觀點,Antigravity 協助整理與潤飾。
  • 技術實作: 文中描述的 WKT 轉換邏輯、Python 腳本生成以及資料庫操作,皆是在 Antigravity 的 AI Agent 輔助下自動完成。