厭倦雜亂的位置信息嗎?讓 Afi Labs 幫你充分發揮 Geocoding API 的全面價值。👋 想開始合作,就打聲招呼吧!

Google 地理編碼 API 實用指南

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 Forward Geocoding Demo
How to use the Google Geocoding API to convert address strings into geographic coordinates
Google Reverse Geocoding Demo
How to use the Google Geocoding API to convert geographic coordinates into addresses
Google Maps Building Outlines and Entrances Demo
How to use the Google Maps Geocoding API to display building outlines and entrances

什麼是 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 地圖應用程式進行地理編碼

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

在網頁上使用 Google 地圖應用程式進行地理編碼

在這兩者之中,正向地理編碼(地址 👉 座標) 通常更受歡迎,因為它經常是將現實世界的地址轉換為可用資料(用於導航、規劃與分析)的第一步。

地理編碼的用途

當你需要在地圖上顯示地址,或提供位置資料給 API 時,地理編碼是不可或缺的。許多 API(例如 Google 天氣 APIGoogle Maps 路線最佳化 API(GMPRO))都需要 GPS 座標作為輸入。例如,送貨管理工具可能會使用正向地理編碼將客戶地址轉換為精確座標,然後將這些座標送入 GMPRO,以生成最佳化的送貨路線。

地理編碼將地址轉換為座標,這些座標可以用於不同的 API 中

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

反向地理編碼用於(A)位置感知應用,(B)資產標記以及(C)社交媒體

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

Google 地理編碼與地址自動填寫的差異

如何獲取 Google 地理編碼 API

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

啟動一個新的 GCP 專案來測試地理編碼 API

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

在 GCP 控制台搜尋地理編碼 API

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

在您的 GCP 控制台啟用 Google 地圖地理編碼 API

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

從 GCP 控制台檢索已啟用地理編碼 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 的替代方案,有幾個競爭服務如 MapboxHERE 地圖TomTom 提供成本較低的穩定選擇。例如,Mapbox 的付費方案每 1,000 次請求(CPM)僅需 0.75 美元,並且每月包含 100,000 次免費地理編碼。然而,由於 Google 的地址數據具有更高的精確性和更新速度,許多人仍然將其作為首選。對於在薄利運作的末端物流企業來說,由於地址錯誤而導致的配送失敗成本,遠遠超過從 Google 獲得準確地理編碼所需的 0.005 美元。

🌐
想要免費架設自己的地理編碼服務嗎?請參考 使用 OpenStreetMap 建立免費地理編碼與反向地理編碼服務。

你將在本系列教學中學到的內容Google 地理編碼 API 是 Google 地圖平台的核心工具。在本系列教學結束時,你將能夠:

1. 將任何地址轉換為其經緯度
2. 將 GPS 坐標反向編碼為可讀的地址和地點名稱,
3. 使用 Google 地址驗證 API 檢查地址是否可投遞,並且,
4. 在地圖上顯示建築輪廓並標記入口

👋 一如往常,如果你有任何問題或建議,歡迎透過 LinkedIn與我聯絡打聲招呼