← 回找工具
現場紀錄

地址給得越完整,它越查不到

免費的地圖查詢服務在台灣查不到門牌,但你少給行政區的時候,它不會說查不到——它會很有自信地給你另一個縣市的同名路。

2026-09-17 · 作者整理:Lucas · 資安審稿後整理
資安審稿註記:本文已把「保證安全」「最強防線」等過度承諾改成保守表述;凡涉及金鑰、權限、刪除、提交、外部發送與自動化執行,均保留人工確認、沙盒或測試環境前提。

我要把一批店家地址轉成地圖上的點。手上的地址很完整:台南市中西區民族路二段76號。縣市、行政區、路名、段、門牌,能寫的都寫了。

它回我一片空白。查無結果。

你給的                      它回你
────────────────────────────────────────────
台南市中西區民族路二段76號    查無結果
台南市中西區民族路           正確(兩筆相距 0.1 公里)
民族路                      高雄市美濃區(不是你要的)

我以為發生了什麼

我以為地址寫得越完整,查到的機率越高。門牌是裡面最精確的那一段,多給它總不會更差。

我也以為查不到的時候,它至少會退一步,給我那條路的位置——差個幾百公尺,但方向是對的。

這兩個想法都很合理。兩個都是錯的。

實際發生了什麼

2026-09-17 實測,三個帶門牌的完整地址(台南、高雄、台中各一),三個全部查無結果。它不是查得不準,是根本沒有台灣的門牌資料。

把門牌拿掉,只留「台南市中西區民族路」:正確,兩筆結果相距 0.1 公里。

把行政區也拿掉,只給「民族路」:回我十筆。十筆全部真的叫民族路,但分別在高雄的美濃、路竹、大寮、大社、岡山、茄萣、鳥松、阿蓮——彼此最遠相距 37.2 公里,而排第一的是美濃。

把筆數放寬到四十筆,民族路橫跨三個縣市,最遠兩點相距 298 公里。民生路 316 公里,中正路 297 公里。

所以規則跟直覺相反:行政區是必要的,門牌是沒用的。

官方文件寫了嗎

沒有。官方的使用政策寫了限流(每秒最多一次請求)、寫了要帶可辨識的 User-Agent,但沒有寫台灣的門牌覆蓋率是多少。

這不是它藏起來。OpenStreetMap 的資料是志工一筆一筆建的,每個國家、每個城市的完整度都不一樣,這種事本來就不會寫進文件。文件能告訴你怎麼呼叫,不能告訴你你要的那塊資料在不在裡面。

你一定會踩的那個細節

查無結果不可怕,查無結果你會發現。

可怕的是只給路名那一種:它回 HTTP 200,回一個結構完整的結果,latlon 都是漂亮的六位小數,欄位一個不缺。它看起來跟正確答案長得一模一樣。

如果你的程式寫的是「拿第一筆」,你拿到的是美濃。不會有任何錯誤訊息告訴你這件事。

重跑這個檢查,換成你自己那批地址的路名:

同一條路名查兩次,比對座標散布範圍:

1. 帶行政區查一次    → 記下回傳的每組 lat/lon
2. 不帶行政區查一次  → 記下回傳的每組 lat/lon
3. 算第 2 組裡任兩點的最大距離

第 3 步如果超過一公里,代表這條路名在台灣不只一條。
你的程式只要有任何一次沒帶到行政區,那筆資料就是隨機的。

真正該做的是把「拿第一筆」改成「拿第一筆,然後檢查它的行政區是不是你要的那個」。不符就丟掉,寧可留空也不要留一個錯的點——地圖上一個錯的點,比地圖上一個洞難發現得多。

站內延伸

來源: Nominatim Usage Policy|實測端點 nominatim.openstreetmap.org/search,2026-09-17

免費的東西不會騙你說它是完整的,但它也不會主動告訴你哪裡有缺。你手上那批地址裡,查得到的那些是真的查到了,查不到的那些會安靜地變成空白——而介於中間的那一種,會變成一個看起來很正常、其實在三十七公里外的點。

← 看更多觀念總論
取得 AI 實戰工具與更新

之後會不定期整理:新方法、指令包(Prompt Pack)、Checklist 與模板。免費、無廣告;送出後會收到一封確認信,點了連結才算訂閱成功,之後每封信都附一鍵退訂。