擷取行程資料

如要接收 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 的主題,如下所示:

  1. 啟用 Pub/Sub API
  2. 前往 Google Cloud 控制台的 Pub/Sub 主題頁面
  3. 按一下 [Create Topic] (建立主題)
  4. 在「Topic ID」(主題 ID) 欄位中輸入 navigation_connect_trip_notifications

  5. 點選「建立」

控制台會顯示完整的主題名稱,格式為 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 CLIGoogle 控制台

4. 測試訂閱項目

使用 gcloud CLI 或 Google Cloud 控制台驗證設定。

gcloud CLI

使用下列指令從訂閱項目 (例如 my-sub) 提取訊息:

gcloud pubsub subscriptions pull my-sub --auto-ack

Google Cloud 控制台

在 Google Cloud 控制台中,請執行下列步驟:

  1. 開啟「訂閱內容」頁面。
  2. 選取訂閱項目,然後按一下「訊息」分頁標籤。
  3. 按一下「Pull」(提取)

後續步驟

開始接收行程資料後,請剖析資料,以便在系統和應用程式中使用。

處理行程資料