如要接收 Google 地圖或 Waze 的行程資料更新,請使用下列任一選項設定後端:
- 使用 Navigation Connect API 的提取方法,或
- 使用 Google Cloud Pub/Sub 的事件導向推送方法。
方法 1:使用 Navigation Connect API
如要手動擷取最新行程狀態,請使用不重複的行程 ID 呼叫 GetTrip 方法。
下列範例說明如何使用應用程式預設憑證 (ADC) 從指令列呼叫 API,授權伺服器對伺服器的要求。
#!/bin/bash
gcloud auth application-default login
access_token="$(gcloud auth application-default print-access-token)"
# Call the GetTrip method
curl -X GET "https://navigationconnect.googleapis.com/v1/projects/PROJECT_ID/trips/TRIP_ID" \
-H "Authorization: Bearer ${access_token}" \
-H "Content-Type: application/json"
自訂折線格式 (僅限 Waze)
如果在建立行程時啟用剩餘路線回報,呼叫 GetTrip 方法時,即可自訂傳回的有效路線折線表示方式。
如要選擇折線的格式,請在要求中加入 routePolylineFormat 參數。支援的格式包括:
ENCODED:標準編碼折線字串 (5 個小數點)。S2ENCODED:編碼的 S2Polyline。GEO_JSON:GeoJSON LineString 格式。
選項 2:使用 Google Cloud Pub/Sub
如要定期接收行程更新,請訂閱 Google Cloud Pub/Sub 主題。駕駛人同意後,Navigation Connect 會直接將更新傳送至您的主題。
如要瞭解訊息傳遞服務,請參閱 Pub/Sub 快速入門導覽課程。
以下各節說明如何使用 Google Cloud Pub/Sub,接收 Google 地圖或 Waze 導航工作階段的資料。
1. 建立主題
在 Google Cloud 雲端專案中建立名為 navigation_connect_trip_notifications 的主題,如下所示:
- 啟用 Pub/Sub API。
- 前往 Google Cloud 控制台的 Pub/Sub 主題頁面。
- 按一下 [Create Topic] (建立主題)。
在「Topic ID」(主題 ID) 欄位中輸入
navigation_connect_trip_notifications。點選「建立」。
控制台會顯示完整的主題名稱,格式為 projects/project-number/topics/navigation_connect_trip_notifications,其中 project-number 是專案的專屬編號。
2. 將發布權限授予 Navigation Connect 服務帳戶
Google 會使用服務帳戶,將行程更新發布至 Google Cloud Pub/Sub 主題。如要在主題中接收更新,請將這個主題的 projects.topics.publish
權限授予下列服務帳戶:
geo-navigation-connect-pubsub@system.gserviceaccount.com。
詳情請參閱 Pub/Sub 存取權控管說明文件。
3. 與後端整合
如要處理更新,請編寫伺服器端應用程式,驗證並訂閱主題。使用 Pub/Sub 用戶端程式庫,簡化開發流程。如要進行測試,您也可以使用 GCloud CLI 和 Google 控制台。
4. 測試訂閱項目
使用 gcloud CLI 或 Google Cloud 控制台驗證設定。
gcloud CLI
使用下列指令從訂閱項目 (例如 my-sub) 提取訊息:
gcloud pubsub subscriptions pull my-sub --auto-ack
Google Cloud 控制台
在 Google Cloud 控制台中,請執行下列步驟:
- 開啟「訂閱內容」頁面。
- 選取訂閱項目,然後按一下「訊息」分頁標籤。
- 按一下「Pull」(提取)。
後續步驟
開始接收行程資料後,請剖析資料,以便在系統和應用程式中使用。