Выбранные вами настройки трафика обеспечивают баланс между точностью сведений о маршруте и производительностью запросов. Когда вы делаете запрос, вы хотите взвесить, лучше ли вернуть максимально точные результаты или как можно быстрее. API маршрутов предоставляет параметры, позволяющие контролировать качество данных ответа и задержку ответа.
Установите уровень данных о трафике
API маршрутов предоставляет RoutingPreference (REST) и RoutingPreference (gRPC), которые позволяют указать предпочтения маршрутизации для расчета маршрутов. Эти предпочтения различаются в степени, в которой они учитывают условия дорожного движения при расчете маршрута. Каждое предпочтение маршрутизации дает результаты, которые в определенной степени различаются в отношении качества маршрута, расчетного расчетного времени прибытия и задержки ответа.
Условия дорожного движения характеризуют скорость транспортного потока. Например:
- При отсутствии заторов условия движения считаются нормальными, и движение транспорта осуществляется с обычной беспрепятственной скоростью.
- Приближаясь к часу пик, плотность движения увеличивается, что приводит к замедлению движения, создавая легкие или умеренные условия движения.
- При движении «бампер к бамперу» скорость потока резко останавливается, что приводит к тяжелым дорожным условиям.
Трафик не знает
Когда вы устанавливаете предпочтение маршрутизации TRAFFIC_UNAWARE
, маршруты рассчитываются без учета текущих условий движения. Это предпочтение маршрутизации обеспечивает минимальную задержку ответа (ответы возвращаются быстрее всего).
TRAFFIC_UNAWARE
— настройка по умолчанию.
В ответ:
ETA содержится в свойстве ответа
duration
.Свойства ответа
duration
иstaticDuration
содержат одно и то же значение.
Используйте эту настройку маршрутизации, если вы хотите, чтобы ответы возвращались как можно быстрее, а приблизительные сведения о маршрутизации достаточно хороши.
В курсе дорожного движения
Когда вы устанавливаете предпочтение маршрутизации TRAFFIC_AWARE
, маршруты рассчитываются с учетом текущих условий дорожного движения. В результате маршрут и детали маршрута более точно отражают реальные условия. Поскольку такое повышение качества данных достигается за счет задержки ответа, применяется оптимизация производительности, чтобы уменьшить большую часть задержки.
В ответ:
ETA, учитывающее трафик в реальном времени, содержится в свойстве ответа
duration
.Свойство ответа
staticDuration
содержит продолжительность проезда по маршруту без учета условий движения.
Используйте эту настройку маршрутизации, если вам нужны более точные сведения о маршрутизации, чем TRAFFIC_UNAWARE
, и при этом вы не возражаете, если ответы возвращаются с умеренным увеличением задержки.
Оптимальный с учетом трафика
Когда вы устанавливаете предпочтение маршрутизации TRAFFIC_AWARE_OPTIMAL
, маршруты рассчитываются с учетом текущих условий дорожного движения, но оптимизация производительности не применяется. В этом режиме сервер выполняет более полный поиск дорожной сети для поиска оптимального маршрута.
Предпочтение маршрутизации TRAFFIC_AWARE_OPTIMAL
эквивалентно режиму, используемому на сайте maps.google.com и в мобильном приложении Google Maps.
При использовании этой опции с Вычислением матрицы маршрутов количество элементов в запросе (количество источников × количество пунктов назначения) не может превышать 100. Дополнительные сведения об ограничениях Вычисления матрицы маршрутов см. в разделе Вычисление матрицы маршрутов .
В ответ:
ETA, учитывающее трафик в реальном времени, содержится в свойстве ответа
duration
.Свойство ответа
staticDuration
содержит продолжительность проезда по маршруту без учета условий движения.
Это предпочтение маршрутизации обеспечивает самую высокую задержку ответа (то есть ответы возвращаются с наибольшей задержкой). Используйте эту настройку маршрутизации, если вам нужны результаты высочайшего качества, независимо от того, сколько времени займет ответ.
Эффект от установки времени отправления
При желании вы можете использовать свойство departureTime
, чтобы установить время отправления поездки. Если вы не установили свойство departureTime
, по умолчанию оно будет равно времени, когда вы делаете запрос.
Для
TRAFFIC_UNAWARE
вы не можете установитьdepartureTime
, поскольку выбор маршрута и продолжительности зависит от дорожной сети и средних условий дорожного движения, не зависящих от времени.Для
TRAFFIC_AWARE
иTRAFFIC_AWARE_OPTIMAL
, которые учитывают условия движения в реальном времени, движение в реальном времени становится тем более важным, чем ближеdepartureTime
к текущему моменту. Чем дальше вы устанавливаете время отправления в будущее, тем больше внимания уделяется историческим условиям движения.
Пример настройки предпочтений маршрутизации
Следующий код JSON демонстрирует, как установить предпочтения маршрутизации в теле объекта сообщения запроса.
{ "origin":{ "location":{ "latLng":{ "latitude":37.419734, "longitude":-122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude":37.417670, "longitude":-122.079595 } } }, "travelMode":"DRIVE", "routingPreference":"TRAFFIC_AWARE_OPTIMAL" }
Настройка качества полилиний
API маршрутов позволяет запрашивать информацию об условиях дорожного движения вдоль ломаной линии с учетом трафика . Дополнительную информацию см. в разделе Запрос полилиний .
Качество полилинии можно описать следующими терминами:
Количество точек, составляющих полилинию
Чем больше точек, тем более плавная полилиния (особенно кривые).
Точность точек с плавающей запятой
Точки указываются как значения широты и долготы, которые представлены в формате с плавающей запятой одинарной точности. Это хорошо работает для небольших значений (которые могут быть представлены точно), но точность снижается по мере увеличения значений из-за ошибок округления с плавающей запятой.
Метод ComputeRoutes (REST) и метод ComputeRoutes (gRPC) поддерживают опцию запроса polylineQuality
для управления качеством полилинии.
Пример настройки качества полилинии
polylineQuality
определяет качество полилинии как HIGH_QUALITY
или OVERVIEW
(по умолчанию). При использовании OVERVIEW
полилиния состоит из небольшого количества точек и имеет меньшую задержку запроса, чем HIGH_QUALITY
.
Например, в теле запроса:
{ "origin":{ "location":{ "latLng":{ "latitude": 37.419734, "longitude": -122.0827784 } } }, "destination":{ "location":{ "latLng":{ "latitude": 37.417670, "longitude": -122.079595 } } }, "travelMode": "DRIVE", "routingPreference": "TRAFFIC_AWARE", "polylineQuality": "HIGH_QUALITY", "polylineEncoding": "ENCODED_POLYLINE", "departureTime": "2023-10-15T15:01:23.045123456Z", ... }