Чтобы получать обновления данных о поездках от Google Maps или Waze, настройте свою серверную часть, используя один из следующих вариантов:
- Метод получения данных с использованием API Navigation Connect, или
- Метод push-уведомлений, управляемый событиями, с использованием Google Cloud Pub/Sub.
Вариант 1: Использовать API Navigation Connect
Чтобы вручную получить актуальный статус поездки, вызовите метод 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 Maps или Waze.
1. Создайте тему.
Создайте в своем проекте Google Cloud тему с именем navigation_connect_trip_notifications следующим образом:
- Включите API Pub/Sub .
- Перейдите на страницу тем Pub/Sub в консоли Google Cloud.
- Нажмите «Создать тему» .
В поле «Идентификатор темы» введите
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 Console .
4. Проверьте свою подписку.
Проверьте правильность настройки с помощью интерфейса командной строки gcloud или консоли Google Cloud.
gcloud CLI
Получайте сообщения из подписки (например, my-sub ) с помощью следующей команды:
gcloud pubsub subscriptions pull my-sub --auto-ack
Консоль Google Cloud
В консоли Google Cloud выполните следующие действия:
- Откройте страницу «Подписки» .
- Выберите свою подписку и перейдите на вкладку «Сообщения» .
- Нажмите «Потянуть» .
Что дальше?
Как только вы начнете получать данные о поездках, обработайте эти данные, чтобы использовать их в своих системах и приложениях.