WalkGIS 實戰:一小時打造「大甲溪溯源」與「智慧水圳」雙主題地圖

驗證 WalkGIS 系統的擴充性:透過標準化流程,快速部署「大甲溪水利溯源」與「智慧水圳」兩條全新路線,並整合 Google Maps 導航與 AI 內容生成。

2025-12-29 · 1 min · 180 words · Wuulong

實作筆記:從 SQLite 到 NotebookLM,自動化產製卡通風格導覽地圖

如何將生硬的 GIS 數據變成生動的旅遊故事?本文分享我的 WalkGIS 自動化工作流:使用 Shell Script 從 SQLite 精準萃取地圖資料,餵給 Google NotebookLM,一鍵生成卡通風格導覽與投影片大綱。

2025-12-29 · 2 min · 248 words · Wuulong

WalkGIS V0.1 釋出:如果地圖是一本可讀的故事書

我們很高興宣布 WalkGIS Project V0.1 正式釋出! 🎉 這是一個實驗性的專案,旨在探索如何讓「地圖資料」不僅是冷冰冰的座標,而是能被人類與 AI 共同閱讀、協作的「散步故事」。 🚀 什麼是 WalkGIS? WalkGIS 是一個輕量級的 GIS (地理資訊系統) 資料庫。不同於傳統地圖,它使用 WKT 文字格式 儲存座標,並用 Mermaid 流程圖 來描述路線。這意味著: 你可以直接讀懂它:打開資料庫,你看到的不是亂碼,而是 POINT(...) 和清晰的文字描述。 AI 可以幫你導覽:未來的 AI 助理可以直接讀取這些資料,為你規劃行程。 🗺️ V0.1 首發路線:后豐鐵馬道 & 東豐綠廊精華遊 作為 V0.1 的展示,我們建構了台中最經典的 「后豐鐵馬道 & 東豐自行車綠廊」 大環線地圖。 這張地圖收錄了 24 個精選景點,從后里馬場出發,穿越百年的九號隧道與花樑鋼橋,一路延伸至東勢客家文化園區。 原圖 數位化的路線拓樸 看看我們如何用程式碼畫出這條路線的邏輯: graph LR; %% 子圖:后豐鐵馬道 subgraph Houfeng ["后豐鐵馬道 (4.5km)"] direction TB H1(1. 后里馬場) --> HA(樟樹平台); HA --> H2(2. 夫妻樹); H2 --> H3(3. 九號隧道); H3 --> H4(4. 花樑鋼橋); H4 --> HB(鐵道之鄉酒莊); HB -.-> HC(榮町雜貨店); end %% 子圖:東豐綠廊 (前段) subgraph Dongfeng_Start ["東豐綠廊-起點段"] D7(7. 豐原大道) --> Junction{綠廊交接處}; HB --> Junction; Junction --> D5(5. 朴口車站); D5 --> HE(200days冰店); HE --> D6(6. 豐榮水利碑); end %% 子圖:石岡精華段 subgraph Shigang ["石岡精華段"] D6 --> D9(9. 石岡水壩); D9 -.-> D10(10. 石岡斷層月台); D9 --> D11(11. 0蛋月台); D11 --> D12(12. 九房3D彩繪村); D12 --> D13(13. 石岡旅服中心); D13 --> D14(14. 情人木橋); D14 -.-> D15(15. 土牛客家館); end %% 子圖:東勢段 subgraph Dongshi ["東勢終點段"] D14 --> D16(16. 梅子車站); D16 --> D17(17. 梅子百年芒果樹); D17 --> D18(18. 梅子鐵橋); D18 --> D19(19. 東勢客家園區); end %% 周邊景點 D8(8. 公老坪) -.-> D7; %% 樣式設定 classDef spot fill:#fff,stroke:#333,stroke-width:2px; classDef highlight fill:#fcf,stroke:#f00,stroke-width:2px; class H1,H3,H4,D9,D11,D19 highlight; class Junction fill:#ff9,stroke:#333,stroke-width:2px,shape:rhombus; mermaid.live 顯示 📂 如何取得與使用? WalkGIS V0.1 目前已整合於本部落格的專案庫中: events/notes/wuulong-notes-blog/walkgis_prj/ ...

2025-12-29 · 2 min · 268 words · Wuulong

打造 AI-First GIS 系統:從 SpatiaLite 到 WKT 的架構演進 (WalkGIS V0.1 開發筆記)

在構建「WalkGIS —— 全台散步地圖」專案的過程中,我與 AI Agent (Antigravity) 進行了一場深度的架構辯論。核心問題在於:當我們希望 AI 能像人類一樣理解地圖時,傳統的 GIS 資料庫還是最好的選擇嗎? 這篇文章記錄了我們如何從傳統的 SpatiaLite 方案,轉向一個更輕量、更適合 LLM 的 “Text-based GIS” 架構。 1. 痛點:AI 讀不懂二進位碼 (Binary Blob) 起初,我們理所當然地選擇了 SpatiaLite 作為 SQLite 的空間擴充。它是業界標準,功能強大。但是,當我嘗試讓 Agent 讀取資料庫時,問題出現了: Agent: “我讀取到了 geometry 欄位,但它是 binary blob,我無法直接解析它的座標。” SpatiaLite 為了效能,將幾何資料存為二進位格式。這對 QGIS 很好,但對 LLM 來說,就像是一本無字天書。如果要讓 Agent 理解「后里馬場在哪裡?」,我們必須寫額外的 Python 程式碼去解碼它,這增加了依賴度與複雜性。 2. 決策:擁抱 WKT (AI-First Approach) 既然我們的目標是 “Agentic GIS”,為什麼不直接存成文字呢? 於是,我們做了一個大膽的決定:棄用 SpatiaLite,擁抱 WKT (Well-Known Text)。 我們將 DB Schema 修改如下: CREATE TABLE walking_map_features ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, -- geometry BLOB, <-- 傳統做法 (X) geometry_wkt TEXT NOT NULL -- 新做法 (O) : POINT(120.735 24.298) ); 這個改變帶來的紅利是巨大的: ...

2025-12-29 · 2 min · 414 words · Wuulong

大甲溪散步地圖:SQLite Schema 設計 (AI 友善 WKT 版本)

散步地圖資料庫 Schema 設計 (AI 友善版) 導言 本文件旨在闡述為「大甲溪散步地圖」專案設計的 SQLite 資料庫 Schema。此設計特別考量了 GenAI 協作 (Agentic Workflow) 的需求,選擇使用標準的 WKT (Well-Known Text) 格式來處理地理空間資料,取代依賴性較高的 SpatiaLite 二進位格式。這確保了從資料蒐集、AI 處理到 QGIS 呈現的過程中,資料具有最高的可讀性與移植性。 整體設計哲學 核心資料結構化:確保地理特徵的基本資訊(名稱、描述、類型)保持一致性,便於查詢與管理。 非核心資料彈性化:利用 JSON 格式的 meta_data 欄位,提供高度彈性來儲存多樣化且不斷演進的非核心屬性。 AI 幾何可讀性 (WKT):全面採用 WKT 字串儲存幾何資料,讓 AI 代理能直接理解、生成與驗證座標,無需複雜的 GIS 驅動程式。 圖層正規化管理:獨立的 layers 表格用於管理圖層的分類和 QGIS 呈現樣式。 AI 協作友好:結構化且彈性的 Schema 設計,極大地方便 AI 代理進行資料的自動化處理、分析與驗證。 社區 GIS 背景資訊與 Layer 分類設計架構 社區 GIS 背景資訊 「社區 GIS」強調地理資訊系統在社區層級的應用,旨在支援地方居民參與、資源管理、文化保存、社會服務及永續發展。這類專案的核心在於將多樣化的在地資訊(例如:親水點、交通、設施、風險、文化景點、生態熱點等)以地理空間的形式進行收集、組織、分析與視覺化。其資料分類通常會考量到以下幾個面向: 功能應用:資料服務於哪種社區需求(如防災、生態教育、文化導覽)。 資料類型:具體的地理實體是什麼(點、線、面,以及相關屬性)。 使用者視角:如何讓在地居民和外部使用者最直觀地理解地圖內容。 Layer 分類設計架構 為呼應社區 GIS 的精神,並支援 QGIS 等工具的靈活呈現,我們特別設計了 layers 表格來管理圖層的分類。其核心架構為 layer_type (主分類) 與 layer_subtype (次分類) 的組合,這種層次化設計有以下優點: ...

2025-12-14 · 3 min · 634 words · Wuulong

社區 GIS 圖層分類學:通用型分類架構參考

社區 GIS 圖層分類範例與資料類型 在進行社區地圖繪製或 GIS 資料庫建置時,一個完善的圖層分類架構能幫助我們更有系統地收集與管理資料。以下是整理出的通用型 layer_type (主分類) 和 layer_subtype (次分類) 建議列表,您可以參考這些架構來填充 layers 表格,作為散步地圖的分類依據。 主分類 (layer_type) 建議 我們將社區 GIS 的資料維度劃分為以下 9 大類: 基礎地理圖層 (Foundation Geography) 社區特色與人文圖層 (Community & Culture) 生活機能圖層 (Daily Life & Amenities) 自然生態與景觀圖層 (Nature & Landscape) 議題導向圖層 (Issue-Oriented) 安全與防災圖層 (Safety & Disaster) 交通與路網圖層 (Transportation & Network) 發展與規劃圖層 (Development & Planning) 參與式資訊圖層 (Participatory Information) 次分類 (layer_subtype) 詳細列表 根據不同的 layer_type,以下是 layer_subtype 的詳細範例列表。您可以根據實際的專案需求(如大甲溪散步地圖)進行增減和調整。 1. 基礎地理圖層 (Foundation Geography) 這類圖層構成地圖的骨架,通常來自政府開放資料。 行政區界線:村里界、鄉鎮市區界、社里範圍 水系:河流、湖泊、水圳、滯洪池 地形:等高線、山坡地、坡向 土地利用:住宅區、商業區、農業區、工業區、公共設施用地 建物與地標:建築物、重要地標、門牌、POI (興趣點) 歷史影像:歷史航照圖、古地圖疊圖 2. 社區特色與人文圖層 (Community & Culture) 這類圖層展現地方的靈魂與記憶。 ...

2025-12-13 · 1 min · 162 words · Wuulong

散步地圖的概念與應用:從移動軌跡看見在地紋理

什麼是「散步地圖」? 在我們進行河流探索時,地圖不僅是導航的工具,更是一種「策展」的媒介。 散步地圖的核心概念,是透過地圖串聯更多的協力與情報,並利用群眾的移動軌跡描繪出有意義的資訊。這與我們強調的公私協力、開放資料精神不謀而合。 以下整理了散步地圖的核心價值與建構方法: 1. 目的與價值:為什麼要畫地圖? 串聯協力:地圖是一個平台,能將分散的個人、店家、組織串聯起來,形成夥伴關係。 在地參與:鼓勵人們走出戶外,透過「走讀」產生對環境的直接關懷。 議題關注/績效評估: 透過地圖點出被忽視的「暗點」(如髒亂點、斷點)。 利用短網址 QRcode 追蹤使用率,評估活動成效。 商業與再生:人流即金流,散步活動能活絡在地經濟,推動地方再生。 2. 圖層解構:地圖裡該有什麼? 散步地圖就像千層蛋糕,由不同屬性的圖層 (Layers) 堆疊而成: A. 基礎骨架 點 (Points):具有意義的興趣點(POI),如古蹟、老樹、特色小店。 線 (Lines):推薦的散步路徑、自行車道。 水 (Water):重要的圳路圖資(幹線、支線),這在河流探索中尤為重要。 B. 情報層 (Information) 環境/生態: 水質監測點(清澈 vs 污染)。 生態庇護所、可下水的親水點。 維護管理: 清潔地圖:垃圾桶位置、髒亂點回報。 文史脈絡: 歷史古圳(如新竹隆恩圳、汀甫圳)的遺跡。 消失的河道。 C. 群眾層 (Crowdsourcing) 公民標記:結合 iNaturalist 或其他工具,讓參與者標記生態發現或垃圾熱點。 3. 如何開始?建構工具箱 🧰 Step 1: 資料收集 (Data Collection) 移動軌跡:利用手機 APP (如 Relive, Strava) 記錄散步路徑,匯出 GPX 格式。這是最真實的「路」。 圖像紀錄:使用開啟 GPS 定位的相機/手機拍照,確保照片帶有經緯度 (Geo-tagging),方便後續展圖。 基礎圖資:下載政府開放資料(國土測繪中心 WMTS、水利署資料)。 Step 2: 呈現與分析 (Visualization) QGIS:最強大的開源 GIS 軟體,用來疊合上述所有資料。 Google My Maps:輕量級的展示工具,適合大眾導覽。 4. 實踐發想:從大新竹到大甲溪 我們可以嘗試將我們在「流域學校」或「大新竹區域」學到的經驗複製: ...

2025-12-13 · 1 min · 84 words · Wuulong