Overpass API(OpenStreetMap 條件查詢)
用條件篩選 OpenStreetMap 資料:把照片裡看到的特徵(車站、藝文設施、橋、某種商店)寫成查詢,列出符合條件的候選地點。
由 AI 代理(Claude)於 2026-10-07 實測;未經人工審閱。實測範圍:以 HTTP GET 對 overpass-api.de 的 /api/interpreter 送 3 種 Overpass QL 查詢(臺北市內車站 300 公尺內的藝文中心、表演藝術中心座標 150 公尺內的鐵道物件、不存在的名稱),並以 /api/status 看額度;沒有用 overpass-turbo.eu 網頁介面,沒有測 POST 與歷史資料查詢;結果:成功。測試紀錄 map-2026-10-07-overpass-01
前往 Overpass API(OpenStreetMap 條件查詢)(overpass-api.de)
| 適合的任務 | 把「車站旁有一座藝文中心」這類場景描述寫成條件,找出候選地點、列出某個座標周圍一定距離內的特定設施、確認某個名稱在一個範圍內有沒有被標記在 OSM 上 |
|---|---|
| 輸入 | Overpass QL 查詢語言寫成的查詢(以 data= 參數送到 /api/interpreter) |
| 輸出 | JSON(或 XML):符合條件的 OSM 節點、線、關聯,含編號、標籤與座標,另有資料時間 timestamp_osm_base |
| 費用 | 免費(有使用額度) |
| 語言 | 查詢語言與回應為英文;標籤值可用中文 |
| 帳號 | 不需帳號 |
| 地區 | 全球 |
| 輸入注意 | 查詢內容會送到執行個體的營運者(主要執行個體由 FOSSGIS 營運)。不要用來列出、追蹤特定個人的住處或常去地點;只查公共設施與地物。 |
測的是哪個管道:本站在 2026-10-07 以 HTTP GET 對主要公開執行個體 overpass-api.de 的 /api/interpreter 送查詢,並用 /api/status 看額度。沒有用 overpass turbo 等網頁介面。這個執行個體由 FOSSGIS 營運,OpenStreetMap Wiki 的使用政策寫明它目前負載很重、不保證穩定:請少量使用、帶能識別自己的 User-Agent、不要同時跑多個腳本,收到 429 或 406 先停 30 秒。
適用任務
照片裡看得到特徵、卻不知道是哪裡時,用它把特徵寫成條件,列出候選地點。例如:
- 照片背景有捷運站出入口,對面是一座外觀特殊的表演場館——查「臺北市內、距離車站 300 公尺內的藝文中心」,再逐一對照。
- 已經有一個大約位置,想列出周圍 150 公尺內所有鐵道設施、橋、加油站或學校,找出和照片吻合的角度。
- 確認某個名稱在一個範圍裡有沒有被標在地圖上。
不適合的情況:OSM 沒標記的東西(小店招牌、臨時攤位、私人物品)找不到;要證明「現場在某天長這樣」——Overpass 給的是現在的 OSM 資料;也不要拿來列出或追蹤特定個人的住處、常去地點。
輸入與前提
- 輸入:用 Overpass QL 查詢語言寫成的查詢,以
data=參數接在https://overpass-api.de/api/interpreter後面(要做 URL 編碼)。開頭建議寫[out:json][timeout:25];,限制輸出格式與執行時間。 - 標籤:條件用 OSM 的標籤寫,例如車站
railway=station、藝文中心amenity=arts_centre。中文名稱寫在name標籤裡,要完全相同才會符合。 - 技術前提:需要能送出 HTTPS 請求並讀 JSON 的工具;會寫或會改 Overpass QL。不需要金鑰或帳號。回應是 JSON,
elements陣列放結果,osm3s.timestamp_osm_base是資料時間。要查自己的額度用https://overpass-api.de/api/status(純文字)。不想寫程式,可以用網頁介面 overpass turbo(列在分類頁 B 層,本站未實測)。 - 使用額度:OpenStreetMap Wiki 的使用政策說,一次性使用時每天少於 10,000 次查詢、下載少於 1 GB 一般不會影響別人;定期執行的用途要再除以 100。商業用途請自架或用付費服務。本站實測時,
/api/status顯示每個 IP 只有 2 個查詢槽位(Rate limit: 2)。 - 費用與帳號:免費、免帳號。
輸出解讀
- type+id:
node(點)、way(線或面,例如建築外框)、relation(組合)。引用時記這兩個值。 - tags:OSM 編輯者標的屬性,例如
name、railway、station=subway。標籤是志工判斷的:本站實測的「藝文中心」結果裡,就有一筆名稱看起來是茶館的地點。 - center(查詢加
out center時):面狀物件的代表點座標。 - timestamp_osm_base:資料庫更新到哪個時間,不是現場的時間。
不能證明什麼:查到 0 筆不代表現場沒有那種設施,只代表 OSM 裡沒有這樣標記;查到的候選地點也只是候選,一定要再用航拍、街景或官方地圖逐一比對,才能說照片拍的是哪裡。
操作示例
題目:照片裡有捷運站出入口,旁邊是一座大型表演場館,可能是臺北市哪裡?
[out:json][timeout:25];
area["name"="臺北市"]["admin_level"="4"]->.a;
node["railway"="station"](area.a)->.st;
nwr["amenity"="arts_centre"](area.a)(around.st:300);
out center tags;
把這段 URL 編碼後接在 /api/interpreter?data= 後面送出。本站實測:HTTP 200、18 秒,14 筆候選,包括臺北表演藝術中心(way 449040993)、臺北流行音樂中心(relation 12329376)、松山文創園區、中山堂、國父紀念館等,也包括一筆名稱看起來是茶館的節點。
第二步,縮小範圍:以臺北表演藝術中心的座標為中心,列出 150 公尺內所有鐵道物件:
[out:json][timeout:25];
nwr(around:150,25.0851051,121.5242462)["railway"];
out center tags;
本站實測:8 筆,包括「劍潭」站(station=subway)、「捷運劍潭站 一號出口」與另一個未命名的出入口、月台、兩段「捷運淡水信義線」軌道。接下來要做的,是拿這些位置去對照照片的拍攝角度與航拍影像,而不是直接下結論。
失敗或限制
- 限速(實際遇到):連續兩個查詢之後,第三個查詢回 HTTP 429,內容寫
rate_limited. Please check /api/status for the quota of your IP address.;/api/status顯示兩個槽位要再等 22 秒與 35 秒才釋放。等了 45 秒以上再送同一查詢,就正常回應。同日稍晚另一個代理照同樣的間隔複核,第三個查詢同樣回 429。429 不是「沒有資料」,不要把它記成查無結果。 - 無結果:不存在的名稱回 HTTP 200,
elements是空陣列。 - 回應時間不一:同一天的查詢從 2 秒到 18 秒都有;查全市範圍這類查詢比較重,會佔住槽位。
- 沒有測的部分:POST 送查詢、XML 或 CSV 輸出、查過去某天的歷史資料(attic),本站都沒有測,也不宣稱可以這樣用。
來源比較
- Nominatim:知道名稱、要座標時用 Nominatim;只知道特徵、要列候選時用 Overpass。兩者都是 OSM 資料,查不到的原因相同(沒人標)。
- overpass turbo(B 層,未實測):同樣的查詢放在網頁上跑,結果直接畫在地圖上,適合不寫程式、要邊看邊改條件的人。
- 國土測繪圖資服務雲 WMTS:Overpass 給候選地點,國土測繪中心的正射影像與電子地圖用來逐一確認候選地點的現場樣貌(本站另有實測頁)。
隱私與使用界線
你的查詢內容與來源 IP 會被執行個體的營運者看到(/api/status 就是依 IP 計算額度)。查詢條件請只描述公共設施與地物,不要用來列出某個人的住處、工作地點或行蹤,也不要把私人照片裡的環境特徵拿來定位某個人。結果資料以 ODbL 授權,引用時要註明「© OpenStreetMap contributors」。
功能證據
| 測試日期 | 2026-10-07 |
|---|---|
| 測試者 | AI 代理(Claude) |
| 方法 | 呼叫官方 API |
| 結果 | 核心功能測試成功(另含無結果或限制案例) |
| 實測範圍 | 以 HTTP GET 對 overpass-api.de 的 /api/interpreter 送 3 種 Overpass QL 查詢(臺北市內車站 300 公尺內的藝文中心、表演藝術中心座標 150 公尺內的鐵道物件、不存在的名稱),並以 /api/status 看額度;沒有用 overpass-turbo.eu 網頁介面,沒有測 POST 與歷史資料查詢 |
| 無結果/限制案例 | 連續兩個查詢後,第三個查詢回 HTTP 429(rate_limited);/api/status 顯示這個 IP 只有 2 個槽位、要再等 22–35 秒;等待後重送同一查詢回 200、elements 為空(不存在的名稱 0 筆) |
| 實際測試的網址 | https://overpass-api.de/api/interpreter、https://overpass-api.de/api/status |
| 紀錄 | map-2026-10-07-overpass-01(環境、測試素材、步驟、原始結果與限制都在紀錄裡) |
替代來源
- overpass turbo:Overpass API 的網頁介面:在瀏覽器裡寫或用精靈產生查詢,結果直接畫在地圖上,也能匯出。
- Nominatim(OpenStreetMap 地名搜尋 API):OpenStreetMap 基金會營運的地名搜尋服務:輸入地名得到座標(search),或輸入座標得到最近的地點與地址組成(reverse)。
維護資訊
三個日期分開記錄:連結檢查只代表網址連得上,功能驗證才代表實際操作過,內容修改是本頁文字最後一次實質修改。
- 連結檢查
- 2026-10-07:HTTP 200,可連線
- 功能驗證
- 2026-10-07(紀錄)
- 內容修改
- 2026-10-07
製作與引用
- 本頁文字由 AI(Claude)起草;未經人工審閱。
- 官方入口:overpass-api.de
- 官方說明:OpenStreetMap Wiki:Overpass API(Public Overpass API instances 表格的 Usage policy 欄)(2026-10-07 讀取):主要執行個體「Operated by FOSSGIS」、「less than 10,000 queries per day and download less than 1 GB data per day」、要加能識別應用程式的 User-Agent、「No parallel running of multiple scripts」、「If you receive an HTTP error code such as 429 or 406, pause for 30 seconds」、「Nowadays this server is overloaded」→ cost、〈輸入與前提〉與〈失敗或限制〉
- 本站與 Overpass API(OpenStreetMap 條件查詢) 沒有合作或利益關係;發現錯誤請寫信到 contact@insightarise.com。