需要協助打造一款使用 Google Places API 的應用程式嗎?👋 跟 Afi Labs 打個招呼吧,我們可以開始合作!

使用 Google Places API 找到正確地點

使用 Google Places API 找到正確地點

在這一系列教學中,我將向你展示如何使用 Google Places API 進行:

  • 地址自動完成
  • 附近地點搜尋
  • 關鍵字文字搜尋
  • 取得地點詳細資訊與照片

我會解釋每個 API 的用途、收費方式,並於每篇文章結尾提供實作範例,協助你快速在 Web App 中整合 Places API。

教學內容分篇如下:

第 1 篇:使用 Google Places API 找到正確地點(本文)
第 2 篇:使用 Places API 建立地址自動完成
第 3 篇:Place Details 與 Place Photos API
第 4 篇:Nearby Search API
第 5 篇:Places Text Search API

Autocomplete Place Demo
How to use a Google Places autocomplete widget to validate addresses as a user types
Places API Demo
How to use the Google Nearby Search API to find nearby places, businesses and points of interest.
Google Places API Text Search Demo
Demo app for the Google Places Text Search API.

什麼是 Google Places API?

Google Places API 是一組 API,可以讓 Google Maps 不只是地圖,而是強大的「地點搜尋引擎」。

你可以把 Google Maps 想像成一個現代化的「地址通訊錄」,其中每一個 Place(地點) 都包含:

  • 名稱
  • 類型
  • 地址
  • GPS 座標
  • 唯一識別碼(place_id)
    -(可能)使用者上傳照片與評論

由於 Google Maps 使用量大,使用者也更願意留下真實評價。

Google Places API 的作用:讓你從「這本通訊錄」查詢資料,並直接使用在自己的應用程式中。

 Google Places API 的五大核心功能

Place Autocomplete「地點自動完成」功能 會在使用者於搜尋框中輸入內容時提供基於位置的建議。它常用於應用程式中的地址字段,使用戶能夠快速從建議結果中進行選擇,而無需輸入完整的地址。

在搜尋輸入文字欄位中使用「地點自動完成」來提供以位置為基礎的建議

Place Details「地點詳情」和Place Photos「地點照片」功能讓您可以存取關於某個地點的各種數據,從名稱和地址等基本資訊到評論和照片等豐富的用戶生成內容,應有盡有。當您需要向使用者提供名稱和位置以外的更全面的地點詳情時,此功能尤其有用。

使用地點詳情和地點照片,將使用者評分和照片添加到清單中

Nearby Search「附近搜尋」 功能可讓您搜尋指定區域內的地點。您可以透過提供關鍵字或指定地點類型來優化搜尋結果,這使得該 API 非常適合建立應用程序,幫助用戶發現附近的相關地點。

使用附近搜尋功能尋找指定位置附近的餐廳、麵包店和超市

Text Search「文字搜尋」功能可直接取代Google地圖搜尋框,使用者可以使用自由文字搜尋地點,無論是特定的地點名稱、地址或位置類型。與專注於地理位置的「附近搜尋」不同,文字搜尋利用人工智慧來解讀用戶查詢。這些查詢既可以是餐廳名稱或地址等具體搜索, 也可以是“溫哥華最好的啤酒廠”等更廣泛的搜索。

使用文字搜尋 API 透過自由文字搜尋地點

Google Places API 金鑰

要開始使用 Google Places API,首先需要在 Google Cloud console中設定。首先,在控制台資訊中心(https://console.cloud.google.com/)建立一個新項目,並將其命名為 places-api-demo。點選  [CREATE]【創建】。

建立新的 GCP 專案以測試 Google Places API

若要啟用 Google Places API,請前往「API 和服務」頁面(在左側選單中選擇)。進入該頁面後,選擇“+ 啟用 API 和服務”,然後搜尋“Places API”。此時應該會出現兩個選項:「Places API」和「Places API(新)」。我們需要同時啟用這兩個選項。

在我們的 GCP 專案中啟用 Places API

點擊每個選項,然後選擇 [ENABLE] 來啟用 API。

將 Places API 新增到我們的 GCP 專案中

接下來,仍然在 places-api-demo 專案中,使用左側的導覽欄前往認證頁面。點擊 [+ 建立認證] 按鈕,然後選擇 [API 金鑰] 選項。在下一頁,使用下拉選單確保 Places API 和 Places API (New) 都已啟用。

正在確認我們的專案是否已加入 Places API

為了增加安全性,為你的 Google Maps API 金鑰設置網站限制非常重要,以防止未經授權的使用。你可以在 API 限制區域下點擊 [Add] 新增按鈕來進行設置。由於 Google API 金鑰通常用於前端,因此可能會被通過瀏覽器檢查源代碼而暴露。為了保護它,你可以將金鑰限制在特定的網域。在上述範例中,我已將 *.afi.dev/* 設為限制,確保該金鑰僅能由 afi.dev 網域下的網站使用。

點擊 [Save] 儲存,你的 Google API 金鑰就可以使用了。要使用它,請在Credentials憑證頁面點擊 [Show Key] 顯示金鑰按鈕。

Google Places API 收費

Google 地點 API 採用按使用量付費的定價模式 (Pay-as-you-go pricing model),類似於其他 Google 地圖平台服務。以下是地點 API 的價格表(以 CPM,即每千次請求的費用計算)大致情況:

0 - 100k 100k - 500k 500k - 1M 1M - 5M 5M - 10M 10M - 20M 20M +
Autocomplete
/ Request
$2.83 $2.27 $1.70 $0.85 $0.25 $0.17 $0.17
Autocomplete
/ Session
$17.00 $13.60 $10.20 $5.10 $1.28 $1.00 $1.00
Place Details $17.00 $13.60 $10.20 $5.10 $1.28 $1.00 $1.00
Place Photo $7.00 $5.60 $4.20 $2.10 $0.53 $0.16 $0.06
Nearby Search $32.00 $25.60 $19.20 $9.60 $2.40 $1.90 $1.90
Text Search $32.00 $25.60 $19.20 $9.60 $2.40 $1.90 $1.90

Google Places API 常見應用情境

Google 地點 API 在各行各業中被廣泛使用。共乘公司利用地點自動完成(Place Autocomplete)功能來幫助客戶準確輸入上車和下車地點。與此同時,房地產公司經常使用附近搜尋(Nearby Search)來顯示特定房產列表附近步行距離內的設施,提升使用者體驗。

它在旅遊業中也很受歡迎,旅遊公司使用地點詳情(Place Details)和地點照片(Place Photo)API 為旅遊景點、飯店和餐廳添加聯絡資訊、營業時間、使用者評論、照片和評分。這讓旅客能夠在旅行期間做出明智的決策,選擇去哪裡參觀、住宿或用餐。

旅遊業使用 Google 地點 API 的一種新興且越來越普遍的方式是將其與大型語言模型(Large Language Model,簡稱 LLM)結合。例如,你可以給 ChatGPT-4o 以下提示:

“我對博物館、文化地標、漂亮的社區和法國餐廳感興趣。請為我規劃一個法國的三天行程,從我的酒店 Le Meurice 開始,並考慮我的喜好。請以 JSON 格式提供答案,並在每個地點中包含 Google Maps 的 place_id。”

這樣它會生成一個行程表,包含每個建議地點的 place_id。

使用 ChatGPT 在回應中生成 place_ids

大型語言模型的回應以及所包含的place_ids 可以被旅遊規劃應用程式使用,以提供個人化的建議,並附上景點和主要地標的評論、照片以及評分。

將大型語言模型的輸出與 Google 地點 API 整合

在本教學系列中你將學到的內容

在本教學結束時,你將成為 Google Places API 的專家。具體來說,你將會:

·      獲得實際操作經驗,設置地點自動完成(Place Autocomplete)來提供地址和地點建議。

·      了解如何使用地點詳情(Place Details)和地點照片(Place Photos)來獲取地點資訊,包括地址、電話號碼、營業時間、用戶評分和照片。

·      學習如何利用附近搜尋(Nearby Search)根據使用者的位置尋找附近的餐館、酒店和景點。

·      使用文字搜尋(Text Search),通過自由文本輸入方式按名稱、地址或類型搜索地點。

👋 一如以往,如果你有任何問題或者意見,歡迎喺 LinkedIn 搵我傾下!