Routes Preferred API в настоящее время доступен только для избранных клиентов. Свяжитесь с отделом продаж , чтобы узнать больше.

Вычислите матрицу маршрута

Вы можете рассчитать расстояние и продолжительность маршрута для нескольких пунктов отправления и назначения, используя метод ComputeRouteMatrix API Routes Preferred. ComputeRouteMatrix поддерживает как потоковые вызовы gRPC, так и HTTP-вызовы REST.

Имея список пар пунктов отправления и назначения, ComputeRouteMatrix вычисляет расстояние и продолжительность маршрута, начиная с каждого источника и заканчивая каждым пунктом назначения. Каждый элемент потока соответствует информации для одного маршрута.

Метод ComputeRouteMatrix имеет несколько преимуществ перед службой матрицы расстояний:

  • Потоковая передача позволяет возвращать элементы до того, как будет рассчитана вся матрица, что снижает задержку.
  • ComputeRouteMatrix имеет детализированные параметры для расчета трафика, что позволяет принимать решения о компромиссе между качеством и задержкой.
  • Запросы выполняются с более высоким приоритетом в инфраструктуре Google, что обеспечивает более высокую доступность.
  • Вы можете указать заголовок (направление движения) и информацию обочины для путевых точек.
  • Вы можете запросить информацию о платных дорогах, а также пройденное расстояние и расчетное время прибытия.

Включить метод ComputeRouteMatrix

Прежде чем вы сможете использовать метод ComputeRouteMatrix в своем коде, вы должны включить его. Дополнительные сведения о включении методов Routes Preferred API см. в разделе Начало работы .

Использование метода ComputeRouteMatrix

Метод ComputeRouteMatrix доступен через конечную точку Routes Preferred v1 .

Для получения более подробной информации см. следующую документацию:

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1 .

ОТДЫХ: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix

Следующие общие шаги описывают, как использовать gRPC для вызова метода ComputeRouteMatrix .

  1. Проверьте необходимые протобуферы из репозитория googleapis:

    https://github.com/googleapis/googleapis/tree/master/google/maps/routes

    Обратите внимание, что некоторые системы сборки, такие как Go, могут автоматически делать это за вас.

  2. Используя предпочтительный язык и набор инструментов сборки, сгенерируйте соответствующий код протобуфера.

  3. Сгенерируйте свой запрос. Вместе с запросом необходимо отправить два обязательных фрагмента метаданных:

    • X-Goog-Api-Key должен быть установлен на ваш ключ API.
    • X-Goog-Fieldmask должен быть установлен в список полей, разделенных запятыми, которые вам нужны из ответа. Например, X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status . Вы можете использовать подстановочный знак (*) для обозначения всех полей, но это не рекомендуется. Используйте подстановочный знак, чтобы проверить и понять ответ API, но явно перечислите нужные поля в маске поля в рабочем коде.

      Дополнительные сведения о том, как создать строку маски поля, см. в статье https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto . Обратите внимание, что отключение полей, которые вам не нужны, может уменьшить задержку, поскольку эти поля могут потребовать дополнительных вычислений. Ваша задержка останется стабильной, если вы укажете нужные поля, а новые поля, требующие дополнительных вычислений, будут добавлены позже.

  4. Отправьте свой запрос на routespreferred.googleapis.com:443 . Вы должны использовать протокол TLS.

Примеры использования метода ComputeRouteMatrix см. в разделе Примеры вычисления матрицы маршрутов (бета-версия) .

Одной из отличительных особенностей метода ComputeRouteMatrix является то, что коды ошибок могут быть возвращены либо для всего потока, либо для отдельных элементов. Например, потоковое соединение возвращает ошибку, если запрос имеет неправильный формат (например, у него нулевые источники). Однако, если ошибка относится только к нескольким элементам потока (например, установка недопустимого идентификатора места для источника), тогда только элементы, затронутые ошибкой, содержат коды ошибок.

Элементы, возвращаемые потоком, не гарантируются в любом порядке. Из-за этого каждый элемент содержит origin_index и destination_index . Для источников и пунктов назначения, указанных в запросе, источник маршрута эквивалентен origins[origin_index] для данного элемента, а пункт назначения маршрута эквивалентен destinations[destination_index] . Эти массивы имеют нулевой индекс. Важно хранить заказы по списку пунктов отправления и назначения.

Расчет платы за проезд

Информацию о расчете платы за проезд см. в разделе Расчет платы за проезд .

Примеры расчета платы за проезд см. в разделе Примеры расчета матрицы маршрутов .