WalkGIS 實戰:為 ATAK 打造專屬的「河川探索」戰術圖示包

在 上一篇 我們搞定了「有廁所的便利商店」地圖資料。然而,當我們真正走入濁水溪或曾文溪的荒野時,地圖上需要的資訊遠不止這些。 我們需要知道哪裡有攔沙壩 (Weir) 可以觀察水流,哪裡有 吊橋 (Suspension Bridge) 可以跨越峽谷,哪裡有 土地公廟 (Earth God Temple) 可以補給休息。 ATAK 內建的軍規符號太過複雜且抽象,網路上抓的圖示又風格不一。於是,我決定自己動手做一套**「WalkGIS 河川探索專用圖示包」**。 🎯 設計理念:直覺至上 在地圖上(尤其是戶外強光下的手機螢幕),辨識度是第一要務。經過幾次嘗試(從下載 icon 到失敗的 fallback),我發現最有效的方法竟然最簡單: 「直接把字寫在圓圈裡。」 看圖示猜半天這是廟還是房子?不如直接寫個**「廟」**。 這是水壩還是水管?直接寫個**「壩」**。 我將需求分為四大類色系,建立了一套視覺語言: 💚 生存 (Survival) - 綠色:廁、店 (雜貨)、水 (水源)、車 (車宿點) 💙 水利 (Hydro) - 藍色:壩、橋、閘 (水門)、生 (生態點)、景 (觀景) 🧡 人文 (Culture) - 橙/棕:廟 (土地公)、跡 (遺跡)、訊 (解說牌)、村 (部落) ❤️ 危險 (Danger) - 紅色:危 🛠️ 技術實作:Python Pillow 自動繪圖 我寫了一個 Python 腳本 (generate_chinese_icons.py),完全不依賴外部圖片素材,直接用程式碼「畫」出這些圖示。 核心邏輯 定義設定檔:用一個 List 管理所有圖示的名稱、顯示文字與顏色。 字體偵測:自動抓取 macOS 系統內的 PingFang.ttc 或 STHeiti 中文字體。 畫布生成: 建立 64x64 的透明底圖。 畫一個實心圓圈(帶白邊),顏色由設定檔決定。 將中文字置中寫在圓圈上。 ATAK 打包:生成 iconset.xml 並將所有 PNG 壓成 ZIP 檔。 程式碼與成果 # 部分程式碼片段 def create_text_icon(item): # ... 畫圓與寫字 ... draw.ellipse([4, 4, 60, 60], fill=item['color'], outline='white', width=3) draw.text((x, y), item['label'], font=font, fill='white') # ... 存檔 ... 執行後,我得到了一個 River_Exploration_Icons_Text.zip。 ...

2026-01-09 · 1 min · 146 words · Wuulong

2026 大甲溪河流探索 Day 3:從后里到谷關,那些地圖上找不到的隱藏細節

今天的行程很長,從后里平原一路往上游挺進,穿過東勢客家山城,最後抵達群山環繞的谷關。這不僅是海拔的爬升,也是一場對於「地圖準確度」的實戰測試。 同時,我也進行了一場關於 ATAK (Android Team Awareness Kit) 軟體的實戰實驗:到底把資料「打成一包 (Data Package)」對於旅行紀錄有什麼幫助? 旅程就看影片: 🎥 2026 大甲溪河流探索 Day 3 Relive 🗺️ 行程流水帳 (AI 軌跡還原版) 這份行程是透過我從 ATAK 匯出的 GPX 軌跡檔,再請 AI Agent 進行時間與空間分析後還原的結果。有趣的是,因為我只匯出了其中一段軌跡,所以 AI 很誠實地告訴我:「其他行程並沒有在軌跡裡」。 主要步行與活動時段: 09:38 | 📍 老祖早餐灌蛋餅:這蛋餅形狀真的特別,是用灌的,做為本日的起點。「應該是 9:01-9:27(以前)」 09:48 | 📍 東勢客家文化園區:舊車站改建,適合散步。 10:46 | 📍 龍神橋 (東勢區):跨越深邃溪谷的重要橋樑,新舊並存。 10:54 | 📍 東勢林業文化園區:見證大雪山林業的伐木歲月,腹地廣大。 11:40 | 📍 東勢本圳:尋找水利源頭,位置稍微偏離一點,可能是在水圳旁移動。「走去月恆門」 11:48 | 📍 月恆門:非常精確的經過此點,也在此遇見了在地的洗衣文化。 12:43 | 📍 白冷圳紀念公園:向工程師磯田謙雄致敬,偉大的倒虹吸管水利工程。 未在軌跡中的行程(包含開車): 后里環保公園:一早醒來的地方,有點冷,幾無花海。 馬鞍壩、天輪壩:大甲溪中游的兩大壩體。 谷關:本日終點,在此挑戰捎來步道並在路邊車宿。 🧪 技術筆記:ATAK Data Package 實驗 這次旅程我也嘗試了 ATAK 的「Data Package」功能,想說能不能像打包行李一樣,把這次旅行的所有照片、標記點、軌跡通通包成一個檔案分享或備份。結果遇到了一些有趣的技術細節: ...

2026-01-08 · 1 min · 200 words · Wuulong

2026 大甲溪河流探索 Day 2:清水美食、聯通管工地與潭子夜市的混搭旅程

延續昨晚在海線的餘韻,大甲溪探索的第二天,行程比起昨天單純的「順流而下」,多了一點「城鄉穿梭」的味道。 今天的主題很跳痛:早上是傳統美食,中午是硬核水利工程,晚上則是都市休閒。 今日我嘗試用 relive 來記錄,照片已經在影片中,就不附上了!大甲溪_day2_relive 🥢 清水第一市場:在地的晨之味 一早來到 清水第一公有市場。來台中海線,早餐不吃點澱粉炸彈好像說不過去。 點了一碗熱騰騰的 麵線糊,那種濃稠的口感配上特製醬料,瞬間喚醒了胃。當然,既然到了大甲溪下游沖積扇區域(雖然清水算海線,但也盛產芋頭),芋頭酥 是絕對不能錯過的甜點。酥脆的外皮包裹著綿密的芋頭餡,這是土地給予的美味。 👷 硬核探勘:大安大甲溪聯通管工程 吃飽喝足,鏡頭轉向這次 WalkGIS 專案的重頭戲——實地探勘 大安大甲溪聯通管工程。 我們先到了 泰安社區活動中心 附近,這裡是尋找工地路徑的指標點。這次重點探勘的是 第二標與第三工區。 這項工程是為了將大甲溪(豐原淨水場)與大安溪(鯉魚潭水庫)的水源串聯起來,對於穩定大台中的供水至關重要。 巨大的地下動脈 在 第三工區 (大甲溪輸水管段 A8K+705 ~ A9K+205),我親眼見證了埋在地底下的巨獸。這是一段長約 500 公尺的明挖覆蓋工程,使用的是直徑 2,600 mm (2.6公尺) 的 DIP 管 (延性鑄鐵管)。 站在管線旁,你才會感受到人類工程的浩大。這些巨大的管子將埋入地下,成為這座城市看不見的血管。與地圖上的線條相比,現場的泥土味與機械聲,才是真實的震撼。 ☕ 北屯與潭子:城市裡的休憩時光 結束了滿身塵土的探勘,下午轉進台中市區。 先到 北屯 找老朋友喝茶聊天。旅行中最重要的不只是風景,更是與人的連結。從水利工程聊到生活近況,這種切換讓腦袋放鬆了不少。 傍晚,來到 臺中市潭子國民暨兒童運動中心。 這是我車泊旅行的小秘訣:運動中心是洗澡與放鬆的聖地。游個泳,洗去一整天的疲憊與工地的飛沙,整個人神清氣爽。 🌃 夜市與歸途 運動完,肚子也餓了。就近到了 潭子區頭家厝得天宮夜市。 這裡不像觀光夜市那麼擁擠,更多的是在地人的煙火氣。隨意買了幾樣小吃,感受台中夜晚的涼風。 今晚的落腳處,我選擇回到 后里環保公園。 繞了一大圈又回到后里,這裡的夜晚安靜許多。在大甲溪流域的庇護下,結束這充實的一天。 明日預告:繼續探索大甲溪水利朔源之旅從后里環保公園往上游德基水庫的旅程,然後回家。 🤖 AI 協作宣告 本文內容: 由人類作者提供行程流水帳與連鞋,Antigravity 協助將筆記擴寫為部落格文章風格。 技術支援: 無特殊技術介入,僅作文字潤飾與格式排版。

2026-01-07 · 1 min · 66 words · Wuulong

地圖即提示 (Map as a Prompt):為什麼我要在每份 WalkGIS 地圖中嵌入 Deep Research 指令?

傳統的 GIS 地圖只告訴你「這裡有什麼」,卻很少告訴你「這裡發生過什麼」。為了解決深度探索的資訊落差,我開始嘗試在 WalkGIS 的每份地圖文件中嵌入專屬的 Deep Research Prompt。這不僅是節省使用者的複製貼上時間,更是一種「將地圖視為知識索引」的產品設計思維。

2026-01-04 · 1 min · 102 words · Wuulong

Agentic 實戰:讓 AI 幫我開發 WalkGIS 到 ATAK 的地圖打包功能

這兩天在整理「大安大甲溪聯通管工程」的 WalkGIS 專案資料時,我思考了一個問題:網頁版的 GIS 雖然方便瀏覽,但如果我要去現場勘查,或者需要跟團隊進行離線協作,最專業的工具其實是 ATAK (Android Team Awareness Kit)。 但是,要將 WalkGIS (基於 Markdown 和 KML) 的資料轉移到 ATAK,並不是單純把 KML 丟進去就好。為了最好的使用者體驗,我們需要製作成 Data Package (Mission Package),這樣才能包含版本資訊、圖示設定,甚至自動載入地圖。 如果是以前,我可能需要花幾個小時去翻 ATAK 的技術文件,搞懂 MANIFEST.xml spec,這是最枯燥的部分。 但這次,我嘗試了 Agentic Workflow,讓 AI 來擔任我的「技術研究員」兼「資深工程師」。 1. 任務指派:從模糊到清晰 我一開始甚至不確定 ATAK 的具體格式細節,所以我只問了 Agent: 「你知道 ATAK data package 的格式嗎?」 Agent 不僅幫我搜尋了格式規範,還直接總結出重點: 它是個 Zip 檔。 核心是 MANIFEST/manifest.xml。 需要 UUID 來管理版本。 支援 KML/KMZ 和影像。 2. 實作:一句話生成工具腳本 知道原理後,我並沒有自己寫程式碼,而是直接把專案路徑和需求丟給 Agent: 「我想要將 大安大甲溪聯通管工程計畫 中的所有點位,打包成 data package」 Agent 做了以下幾件事: 掃描我的專案結構:自動找到 static/walkgis_prj/features 下的所有 .md 檔案。 理解資料欄位:解析 Frontmatter 中的 coordinate、title、color。 撰寫 Script:生成了一個 create_2026_daan_dajia_pipeline_atak_pkg.py,完整處理了 KML 生成、XML Manifest 建立、UUID 產生,最後壓縮成 Zip。 整個過程不用 3 分鐘,我就得到了一個可以動的 Python 腳本。 ...

2026-01-02 · 1 min · 148 words · Wuulong

AI 實戰筆記:如何讓 Agent「看圖說路」,把一張 JPG 工程圖轉成 WKT 地理路徑?

當手上只有一張靜態的工程示意圖,卻想在地圖上畫出真實的管線路徑時,該怎麼辦?本文記錄了我如何引導 AI Agent,透過「座標錨定」與「關鍵點推估」,將圖片中的線條轉化為標準的 WKT (Well-Known Text) 格式,成功在 WalkGIS 上重現大安大甲溪聯通管的地下網絡。

2026-01-01 · 1 min · 170 words · Wuulong