Google 地理編碼 API 實用指南
在本系列教學中,我們將深入探索 Google 地圖第二受歡迎* 的 API——Google 地理編碼 API (Geocoding API)。我會說明它的用途,帶你逐步了解多個實作範例,並在每篇部落格文章結尾提供可運行的示範與原始程式碼,方便你在自己的專案中使用。我們還將介紹兩個相關的 API:地址驗證 API(Address Validation API):幫助識別並修正錯誤地址, 以及 建築物輪廓與入口 API(Building Outlines and Entrances):允許你在地圖上顯示建築物的外形與入口位置。

第一篇:Google 地理編碼 API 實用指南(本文)
第二篇:使用 Google 地理編碼 API 進行正向地理編碼
第三篇:Google 地圖反向地理編碼:從座標取得地址
第四篇:使用 Google 地址驗證 API 修正錯誤地址
第五篇:Google 地圖建築物輪廓與入口 API
* 排名第一的 Google 地圖 API 當然是 Maps JavaScript



什麼是 Google 地理編碼 API?
Google 地理編碼 API 是一個網路服務,可以將地址(例如「555 West Hastings Street, Vancouver BC, Canada」)轉換成地理座標(如 (49.2846966, -123.11258))。它也支援反向操作,將緯度與經度座標轉換成可讀的地址或地點名稱,資料來源來自 Google Maps 資料庫。
你也可以自己試試:在 Google 地圖(https://www.google.com/maps)的搜尋欄輸入地址,即可在 URL 中看到對應的緯度與經度。這個過程稱為 正向地理編碼(forward geocoding,簡稱 geocoding)。

反向地理編碼則是相反的操作 - 它將地理位置轉換為人類可讀的地址。要在 Google 地圖上使用它,請在地圖上的任意位置點擊並按住,直到出現一個小標記。地址就會在螢幕底部的彈出視窗中顯示出來。

在這兩者之中,正向地理編碼(地址 👉 座標) 通常更受歡迎,因為它經常是將現實世界的地址轉換為可用資料(用於導航、規劃與分析)的第一步。
地理編碼的用途
當你需要在地圖上顯示地址,或提供位置資料給 API 時,地理編碼是不可或缺的。許多 API(例如 Google 天氣 API 或 Google Maps 路線最佳化 API(GMPRO))都需要 GPS 座標作為輸入。例如,送貨管理工具可能會使用正向地理編碼將客戶地址轉換為精確座標,然後將這些座標送入 GMPRO,以生成最佳化的送貨路線。

另一方面,反向地址地理編碼用於將 GPS 坐標轉換為可讀的地點名稱,應用於各種場景,例如基於位置的服務(例如天氣應用顯示你當前所在區域)、資產追蹤(例如 Apple 的 FindMy應用顯示你遺留 AirTags 的位置)以及地理標籤(例如社交媒體平台為照片加上特定位置標籤以便於查找和提供上下文)。

Google 地理編碼 API 與自動完成有何不同?Google 地理編碼 API 和地點自動完成都能返回給定地址的緯度和經度。然而,它們的用途不同:地理編碼 API 適合用於處理存儲在文件或資料庫中的地址文字字符串,而自動完成則針對使用者輸入設計——幫助使用者從可搜尋的列表中選擇正確的地址或地點名稱。例如,配送管理系統可能會使用地理編碼 API 來處理一批上傳的地址,而電子商務網站則會在結帳過程中使用自動完成來引導客戶輸入送貨地址。

如何獲取 Google 地理編碼 API
金鑰要開始使用地理編碼 API,您首先需要在 Google Cloud 控制台中設置它。請在 https://console.cloud.google.com/ 創建一個新專案,並將專案命名為 geocoding-api-demo。然後點擊 [創建] / [CREATE]。

要啟用地理編碼 API,請從左側選單中選擇「API 和服務」頁面。然後,點擊 [+ 啟用 API 和服務],並搜尋「地理編碼 API」。

點擊 [地理編碼 API] 連結,然後按下 [啟用] 按鈕。

點擊 [儲存]。如果您返回「金鑰和憑證」頁面,您可以透過點擊右側的 [顯示金鑰] 連結來找到您的新 API 金鑰。

Google 地理編碼 API
範例地理編碼 API 非常容易使用。一旦你有了 API 金鑰,將下面範例中的 {GOOGLE_MAPS_API_KEY} 替換為你的金鑰,複製完整的 URL,然後貼到瀏覽器的地址欄中。按下 [Enter],回應將直接顯示在你的瀏覽器中。
正向地理編碼請求
方法:GET
https://maps.googleapis.com/maps/api/geocode/json?address=555+west+hastings+street+vancouver&key={GOOGLE_MAPS_API_KEY}回應

反向地理編碼請求
方法:GET
https://maps.googleapis.com/maps/api/geocode/json?latlng=49.2846966,-123.1119349&key={GOOGLE_MAPS_API_KEY}回應

Google 地理編碼 API 免費嗎?
不,地理編碼 API 並非完全免費。價格從每 1,000 個編碼的地址 5 美元起(CPM)。不過,Google 提供了慷慨的免費額度,每月包括 10,000 個編碼地址,足以支援大多數中型配送業務而不需產生任何費用。
Google 地理編碼 API 價格
像其他 Google 地圖平台 API 一樣,地理編碼 API 採用按使用量付費模式。客戶會根據發送到 API 的地址數量收費。每月前 10,000 個地址是免費的,超過部分每 1,000 個地址(CPM)的費用取決於每月的總量。
| Monthly addresses | Cost per 1,000 addresses |
|---|---|
| Up to 10,000 | Free |
| 10,000 to 100,000 | $5.00 CPM |
| 100,000 to 500,000 | $4.00 CPM |
| 500,000 to 1 mil | $3.00 CPM |
| 1 mil - 5 mil | $1.50 CPM |
| 5 mil + | $0.38 CPM |
如果您處理的是高使用量,您可以與 Google 地圖合作夥伴合作以獲得批量折扣。詳情請參閱官方定價頁面。
我可以緩存 Google 地圖的地理編碼數據嗎?
官方規定,不能。Google 地圖服務條款明確指出:
5.3 快取。客戶可以暫時快取來自地理編碼 API 的緯度(lat)和經度(lng)值,最多連續 30 個日曆天,之後客戶必須刪除已快取的緯度和經度值。
但實際上,每個人還是會這麼做,而且 Google 無法強制執行這條規則。一種常見的降低地理編碼成本的方法是先檢查地址是否已經「出現過」。如果出現過,就重複使用已存的緯度和經度。如果是新的地址,就對它進行一次地理編碼,並將地址及其座標保存到資料庫中以備將來使用。
Google 地理編碼 API 替代方案
如果你正在考慮 Google 地圖地理編碼 API 的替代方案,有幾個競爭服務如 Mapbox、HERE 地圖或 TomTom 提供成本較低的穩定選擇。例如,Mapbox 的付費方案每 1,000 次請求(CPM)僅需 0.75 美元,並且每月包含 100,000 次免費地理編碼。然而,由於 Google 的地址數據具有更高的精確性和更新速度,許多人仍然將其作為首選。對於在薄利運作的末端物流企業來說,由於地址錯誤而導致的配送失敗成本,遠遠超過從 Google 獲得準確地理編碼所需的 0.005 美元。
你將在本系列教學中學到的內容Google 地理編碼 API 是 Google 地圖平台的核心工具。在本系列教學結束時,你將能夠:
1. 將任何地址轉換為其經緯度,
2. 將 GPS 坐標反向編碼為可讀的地址和地點名稱,
3. 使用 Google 地址驗證 API 檢查地址是否可投遞,並且,
4. 在地圖上顯示建築輪廓並標記入口
👋 一如往常,如果你有任何問題或建議,歡迎透過 LinkedIn與我聯絡或打聲招呼


