在製作 大安大甲溪聯通管工程地圖 的過程中,我遇到了一個棘手的問題。
我手上有一張非常清楚的官方工程示意圖(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 資料庫。在地圖上,這些線條精準地串連了各個設施,視覺效果與原始工程圖高度吻合。
這給了我們什麼啟示?
- AI 是最好的 GIS 助理:雖然它不能取代高精度的測繪,但對於「示意圖數位化」這種場景,它的效率是人類的 10 倍。
- 錨點思維:與 AI 協作時,提供「已知定錨點」非常重要。你給的已知點越多,它「猜」出來的中間路徑就越準。
- WKT 是通用語言:透過文字化的 WKT (Well-Known Text),我們可以輕鬆地讓 AI 處理複雜的幾何圖形。
現在,這張「大安大甲溪聯通管地圖」不僅有景點,更有了一目了然的血管網絡。
🤖 AI 協作宣告
- 本文內容: 由人類作者提供核心經驗與技術觀點,Antigravity 協助整理與潤飾。
- 技術實作: 文中描述的 WKT 轉換邏輯、Python 腳本生成以及資料庫操作,皆是在 Antigravity 的 AI Agent 輔助下自動完成。