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