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

[公告] 匯流成河:河川探索計畫正式併入哈爸筆記

為了集中創作能量與技術資源,原獨立的「2026 台灣河流探索」網站正式併入「哈爸筆記」,未來將作為本站的核心系列持續更新。

2025-12-19 · 1 min · 81 words · Wuulong

【公告】歡迎加入「哈爸實驗室」Discord 社群!

一個人埋頭苦幹,不如一群人一起實驗!「哈爸實驗室」Discord 群組正式開放,這裡匯集了對 n8n 自動化、AI Agent 開發有興趣的朋友。最新上線功能:AI 法規查詢機器人 (!law),快進來試玩!

2025-12-17 · 1 min · 74 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

專案計畫:大甲溪散步地圖資料建構 (Data Collection Plan)

把理論帶進現場:大甲溪地圖建構計畫 承襲先前整理的[〈散步地圖的概念與應用〉]({< relref “20251213_walking_map_concept.md” >}),我們決定利用這次 2026 年 1 月的大甲溪探險,進行實地的資料蒐集與圖層建構。 這份文件是我們的「行前任務簡報」。 1. 核心目標 (Objectives) 我們不只是去露營,我們要把**「看不見的資訊」**帶回來。 建構基礎圖層:繪製出一份適合車泊族與生態愛好者的大甲溪中下游導覽圖。 驗證方法論:測試使用手機 GPS 與協作工具進行現場製圖的可行性。 2. 預計蒐集的圖層 (Target Layers) 我們將目光聚焦在以下四個維度: 🟦 水文與親水層 (Blue Layer) 親水點:哪裡可以安全下到水邊?(河床路徑入口) 阻隔點:哪裡被高聳的水泥堤防阻斷,無法接近水面? 流況觀察:高美濕地潮汐變化的最高/最低水位線(目測或詢問當地人)。 🟩 生態與景觀層 (Green Layer) 植被帶:后里環保公園的樹林分佈(尋找遮蔭處)。 生物熱點:高美濕地招潮蟹最密集的區域。 景觀點:拍攝夕陽、大橋的最佳攝影點。 🟫 用路人與車泊層 (Grey Layer - Utility) 這是對我們社群最有價值的資訊: 泊點:平坦、安靜、合法的停車位置。 水源/廁所:公廁位置、開放時間、是否有水龍頭。 補給點:最近的便利商店或全聯。 🟧 風險與負面層 (Risk Layer) 危險因子:野狗群聚地、路面破碎區、易淹水區。 環境髒亂:垃圾堆積熱點 (LNT 觀察)。 3. 執行工具與分工 (Execution) 工具箱 (Toolkit) 軌跡記錄 (Tracks): 工具:Relive / Strava / Garmin 手錶。 任務:全程開啟記錄,特別是「如何開進河床」的那段路徑。 點位標記 (Waypoints): 工具:Google Maps (打星號) / 拍照 (Geo-tagging)。 技巧:看到重要的東西,先拍照,回家再從照片的 EXIF 抓座標,這樣最快且不打斷遊興。 語音筆記: 利用手機錄音,快速口述當下的觀察(例如:「這裡土質太軟,二驅車不要下來」)。 協作分工 (Team) Wuulong (我):負責整體軌跡記錄、車泊點技術評估(地質、坡度)。 夥伴 (明光/企鵝):負責標記美食點、廁所清潔度、生態觀察。 4. 預期產出 (Deliverables) 回程後,我們將產出: ...

2025-12-13 · 1 min · 102 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

高美濕地:風、潮汐與大甲溪的終章

大甲溪的最後一哩路 如果說大甲溪是一條奔騰的巨龍,那麼高美濕地就是牠溫柔擺尾入海的地方。 這次的「2026 大甲溪探索之旅」,我們將終點設在這裡,不僅是為了那舉世聞名的夕陽,更是為了讀懂這片土地從「海水浴場」變身「生態聖地」的傳奇身世。 1. 歷史的諷刺:從戲水到保育 🏖️ 現在遊客如織的高美濕地,在日治時期其實是知名的 「高美海水浴場」(1932年設立)。 當時這裡是清水的時髦景點,人們來這裡游泳、戲水。然而,1976年台中港的興建,築起了北堤,阻斷了飄沙,導致大甲溪挾帶的泥沙大量淤積於此。 海水浴場被迫關閉,卻意外造就了這片廣達 700 公頃的泥質灘地。人類退場了,螃蟹與鳥類進場了。這是一個**「無心插柳柳成蔭」**的生態復育故事。 🔍 豆知識:「高美」舊稱**「高密」**,意思是這裡的水深不可測,連竹竿(篙)都會被淹沒(密)。這與現在退潮後可以步行幾公里的景象形成強烈對比,見證了滄海桑田。 2. 生態微觀:泥灘上的熱鬧視界 🦀 來到高美,請把視線從天空(夕陽)移到腳下(泥灘)。 🌱 植物戰爭:雲林莞草 vs 互花米草 雲林莞草 (Bolboschoenus planiculmis):這是高美的綠色地毯,提供生物棲息。每年秋冬枯黃,春天轉綠。 互花米草 (Spartina alterniflora):強勢的外來種,曾一度威脅濕地陸化。經過多年的清除努力,目前生態已逐漸平衡。 🦀 招潮蟹大軍 走在木棧道上,仔細觀察兩側,你會看到成千上萬的小生物在揮手: 弧邊招潮蟹 (Tubuca arcuata):體型最大,背甲有網狀花紋,是這裡的角頭老大。 清白招潮蟹 (Uca lactea):全身雪白,像是在泥灘上掉落的珍珠。 北方呼喚招潮蟹:特徵是那隻巨大的黃色大螯,像是在呼喚潮水(或女朋友)。 3. 地標巡禮:紅白燈塔 🗼 溼地旁那座紅白相間的八角形塔身,是 「高美燈塔」。 特色:全台唯一外觀呈「紅、白平行條紋」的燈塔。 身世:建於 1967 年,但命運多舛。啟用沒多久,就因為台中港建設使燈光受阻而「熄燈」,將燈器移給了台中港燈塔。 現況:2014 年翻修後重新開放參觀(雖然不再引航,但成為了歷史地標)。遊客可以爬上塔頂,擁有俯瞰濕地的絕佳視角。 4. 在地風味與夥伴聚餐 🥢 探索了一整天,晚餐是旅程的重頭戲。 本次大甲溪行程,我們的好夥伴明光將在高美濕地組織一場晚餐聚會。 如果不吃團餐,清水在地的「海線滋味」也絕不能錯過: 清水米糕:充滿海味的糯米香,搭配特製醬料(阿財、王塔各有所好)。 擀麵:高美路上的「老士官擀麵」,麵條Q彈,是眷村留下的好味道。 結語:風的故鄉 高美濕地也是著名的「風場」。當我們站在木棧道盡頭,被強勁的海風吹拂時,請記得:正是這股風、這片潮汐,以及大甲溪帶來的泥沙,共同雕塑了這片生意盎然的土地。 期待在這裡與大家看夕陽、吃晚餐,為大甲溪之旅畫下完美句點。

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

從廣播到連結:台灣河流探索社群的運作架構

我們如何連結彼此?社群運作的思考 隨著「台灣河流探索」計畫的啟動,除了產出攻略與知識外,我更希望能連結一群志同道合的夥伴。 但在數位時代,工具太多,注意力太碎。為了避免「LINE 群組洗版焦慮」或「FB 演算法綁架」,我們設計了一套分層的社群運作架構,讓不同需求的夥伴都能找到舒服的位置。 📍 三層漏斗架構 (The Funnel) 我們依照「資訊密度」與「互動頻率」,將社群分為三個同心圓: 1. 廣播站 (Broadcasting) 平台:Hugo 部落格 (本站)、Facebook 個人頁 定位:公開、單向、精華導覽。 適合誰? 想看完整遊記與攻略的人。 還是「路人粉」,想先觀察看看我們在幹嘛的人。 運作:所有活動預告、深度文章都在此發布。這裡是入口。 2. 探險基地 (The Base) 平台:Discord 伺服器 (🧪 哈爸實驗室) 定位:半公開、非同步討論、知識沈澱。 適合誰? 對「河流探索」或「GenAI 應用」有興趣,想長期交流的人。 想獲取更細節資訊(如 GPX 檔、私房點座標)的人。 想許願下一條河去哪裡的人。 運作:這裡是我們的「線上戰情室」。我們不在這裡閒聊早餐吃什麼,而是討論裝備、技術與路線。 ⚠️ 新手必讀:如何解鎖頻道? 為了避免雜訊干擾,我們採用「這我不想看」的設計。 剛加入時,您可能只看得到大廳。請務必前往「導覽 (Onboarding)」或公告區,回答「你對什麼主題感興趣?」 選 [河流] 👉 才會解鎖車泊與河流頻道。 選 [技術] 👉 才會解鎖 GenAI 與程式碼頻道。 (全選當然也可以!) 3. 戰術小隊 (Tactical Squad) 平台:LINE 群組 (活動限定) 定位:私密、即時通訊、任務導向。 適合誰? 確認報名參加當次行程的實體旅伴。 運作: 僅在確認出團名單後建立,活動結束後即解散(或轉為靜音存檔)。 處理「我到了」、「塞車」、「今晚吃什麼」等高頻且即時的資訊,避免干擾 Discord 的知識討論。 🛠️ Discord 頻道設計哲學 為什麼選擇 Discord 作為基地?因為它能精準地分流資訊。針對本計畫的核心精神——「河流探索」與「科技賦能」,我們精簡出以下四大區塊: ...

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