從地名到建構 HGIS 的數位鏈金術 (4):【交織】時空縫合術——讓古地名跨越百年,精準降落在 WGS84 座標上

經過前三篇的努力,我們左手握有中研院的「1920年代空間圖資」,右手拿著從《臺灣通史》榨取出來的「600+ 個古地名與基建列表」。 這就像是一場歷史級別的相親大會——我們要讓書本裡的名字,在歷史地圖上找到歸宿,並將它們賦予現代的 WGS84 GPS 經緯度座標。這個過程,技術上叫做 Geo-Coding (地理編碼)。 同名異地的災難 原以為只要用程式名稱對齊 (Fuzzy Label Matching) 就好,但代誌不是憨人想的那麼簡單! 台灣地名有驚人的重複率。古書裡寫了個「新莊」或「福興」,如果你不用大腦,程式很容易把北部的事蹟,釘到南部的地圖上,導致座標嚴重飄移。 第一波升級:內政部兵器庫支援 首先,1920 年代的「街庄/大字」顆粒度有時仍不夠細緻,很多《臺灣通史》提到的小聚落找不到。 我決定導入國家級的兵器庫支援:內政部 3 萬筆古地名資料庫 (moi_settlements)。我把這 37,758 筆資料匯入我的資料庫,形成了一個包含了「1920 歷史界線 + 現代文史調查點位」的「三層立體查詢網」。 第二波突破:上下文錨定法 (Hierarchical Anchor) 為了解決同名造成的標記錯誤,我幫自動配對腳本裝上了**「閱讀理解能力」**。 我實作了 guess_anchor 演算法。配對前,程式會先反查《臺灣通史》原文,看看這個地名的上下文寫了什麼。 如果上下文提到了「淡水 / 艋舺」,程式會自動將這個地名的搜尋範圍 錨定 (Anchor) 在「臺北州」。 如果上下文提到「打狗 / 阿猴」,程式就只准在地圖的「高雄州」範圍內尋找這個聚落。 這招「因文定地」,徹底解決了同名異地的痛點! 史圖合一的瞬間 當我按下 geo_coding.py 的執行鍵,看著終端機不斷吐出 Log: ⚓ Anchored: 中港 -> 對應到苗栗竹南的中港 (24.6853, 120.8519) ⚓ Anchored: 六張犁 -> 成功定錨... ⚓ Anchored: 牛罵 -> 臺中市清水區牛罵頭... 憑藉著上下文疊圖與三層過濾網,我成功地讓近 200 個寫在文言文裡的歷史地名,從泛黃的紙張上躍起,精準降落在 Google My Maps 的紅色圖釘上。 ...

2026-02-22 · 1 min · 78 words · Wuulong