检索行程数据

如需接收来自 Google 地图或 Waze 的行程数据更新,请使用以下任一选项配置后端:

  • 使用 Navigation Connect API 的拉取方法,或
  • 一种使用 Google Cloud Pub/Sub 的事件驱动型推送方法。

方法 1:使用 Navigation Connect API

如需手动获取最新的行程状态,请使用唯一的行程 ID 调用 GetTrip 方法。

以下示例展示了如何从命令行调用 API,并使用应用默认凭据 (ADC) 授权服务器到服务器的请求。

#!/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. 点击创建主题
  4. 主题 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. 点击拉取

后续步骤

开始接收行程数据后,请解析数据,以便在您的系统和应用中使用这些数据。

处理行程数据