Выбранные вами настройки трафика обеспечивают баланс между точностью сведений о маршруте и производительностью запроса одним из двух способов:
- Информация о дорожном движении: предоставление максимально точных результатов (более высокая задержка).
- Не обращайте внимания на дорожную ситуацию: возвращайте результаты как можно быстрее (минимальная задержка).
При отправке запроса подумайте, что лучше: вернуть максимально точные результаты или как можно быстрее. Библиотека маршрутов предоставляет возможности, позволяющие контролировать качество данных ответа и задержку ответа.
Установите уровень трафика и модель трафика
Чтобы указать уровень трафика, установите routingPreference в ComputeRoutesRequest . В следующем списке представлены доступные параметры routingPreference :
-
TRAFFIC_UNAWARE(по умолчанию): возвращает результаты максимально быстро, с приблизительными данными о маршруте. -
TRAFFIC_AWARE: возвращает более точные результаты, используя данные о дорожном движении в реальном времени, но с большей задержкой. -
TRAFFIC_AWARE_OPTIMAL: Возвращает максимально точные результаты, используя данные о дорожном движении в реальном времени, но с максимальной задержкой.
Свойство TRAFFIC_MODEL представляет собой предположения, которые следует использовать при прогнозировании продолжительности движения ( TrafficModel.BEST_GUESS (по умолчанию), TrafficModel.OPTIMISTIC , TrafficModel.PESSIMISTIC ).
Как выбрать маршрутизацию с учетом трафика
Чтобы создать запрос маршрута с учетом дорожной ситуации, выполните следующие действия:
Установите свойство
travelModeнаDRIVING.Задайте для свойства
routingPreferenceодно из следующих значений:-
TRAFFIC_AWARE -
TRAFFIC_AWARE_OPTIMAL
ПРИМЕЧАНИЕ:
TRAFFIC_UNAWARE— настройка по умолчанию.-
Задайте для свойства
trafficModelодно из следующих значений:Установите для свойства
extraComputationsзначениеTRAFFIC_ON_POLYLINE.Запросите поля
path,speedPathsиrouteLabels.
В следующем примере запроса показано, как запросить маршрут с учетом дорожного движения, который отображает данные о дорожном движении на ломаной линии:
// Define a traffic aware routes request with polylines. const requestWithTraffic = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE_OPTIMAL', trafficModel: 'optimistic', extraComputations: ['TRAFFIC_ON_POLYLINE'], fields: ['speedPaths'], };
Условия дорожного движения
Условия дорожного движения характеризуют скорость транспортного потока:
- Нормальное движение: пробок нет, транспорт движется с обычной скоростью.
- Низкая или умеренная интенсивность движения: увеличение загруженности дорог, движение транспорта с пониженной скоростью.
- Интенсивное движение: сильные заторы со значительно сниженной скоростью движения.
Не осведомлены о дорожном движении
TRAFFIC_UNAWARE — настройка по умолчанию. Используйте этот параметр маршрутизации, если вы хотите получать ответы максимально быстро и приблизительные данные о маршруте вас устраивают.
Маршруты TRAFFIC_UNAWARE рассчитываются без учёта текущей дорожной ситуации. Такой приоритет маршрутизации обеспечивает максимально быстрый ответ на запрос (минимальную задержку).
Если выбран вариант TRAFFIC_UNAWARE , выбранный маршрут и длительность будут зависеть от дорожной сети и средней дорожной обстановки, не зависящей от времени, а не от текущей дорожной обстановки. Следовательно, маршруты могут включать временно закрытые дороги. Результаты по данному запросу могут меняться со временем из-за изменений в дорожной сети, обновленных средних дорожных условий и распределенного характера обслуживания. Результаты также могут различаться для практически эквивалентных маршрутов в любое время и с любой частотой.
Вот ответы, которые вы увидите:
-
duration: содержит расчетное время прибытия по маршруту. -
staticDuration: расчетное время прибытия по маршруту с учетом только исторической информации о дорожном движении. ДляTRAFFIC_UNAWAREэто значение совпадает сduration.
Информация о дорожном движении
Используйте этот параметр маршрутизации, когда вам нужны более точные сведения о маршрутизации, чем TRAFFIC_UNAWARE , и при этом вас не беспокоит, если ответы будут возвращаться с умеренным увеличением задержки.
При настройке маршрутизации TRAFFIC_AWARE сервис рассчитывает маршрут с учётом текущей дорожной ситуации. В результате маршрут и его детали более точно отражают реальные условия. Поскольку повышение качества данных достигается за счёт задержки ответа, для её значительного сокращения применяются меры оптимизации производительности.
Вот ответы, которые вы увидите:
-
duration: расчетное время прибытия рассчитывается с учетом информации о дорожной обстановке в режиме реального времени. -
staticDuration: расчетное время прибытия по маршруту с учетом только исторической информации о дорожном движении.
Оптимальный с учетом дорожного движения
Используйте этот параметр маршрутизации, когда вам нужны результаты высочайшего качества, независимо от времени ответа. Этот параметр маршрутизации обеспечивает самую большую задержку в ответах (наивысшую задержку).
При установке параметра маршрутизации TRAFFIC_AWARE_OPTIMAL сервис рассчитывает маршрут с учётом текущей дорожной ситуации, но не применяет оптимизацию производительности. В этом режиме сервер выполняет более тщательный поиск оптимального маршрута в дорожной сети.
Настройки маршрутизации TRAFFIC_AWARE_OPTIMAL эквивалентны режиму, используемому maps.google.com и мобильным приложением Google Maps.
При использовании этой опции с computeRouteMatrix количество элементов в запросе (количество источников × количество пунктов назначения) не может превышать 25.
Вот ответы, которые вы увидите:
-
duration: расчетное время прибытия на маршрут с учетом информации о дорожной обстановке в режиме реального времени. -
staticDuration: расчетное время прибытия по маршруту с учетом только исторической информации о дорожном движении.
Установить время отправления (необязательно)
Используйте это свойство только для запросов с учётом дорожной ситуации, когда время отправления должно быть в будущем. Если свойство departureTime не задано, по умолчанию будет использоваться время отправки запроса.
Используйте свойство departureTime вместе с параметрами TRAFFIC_AWARE и TRAFFIC_AWARE_OPTIMAL , когда вы хотите настроить способ, которым служба прогнозирует трафик при выборе маршрута.
-
TRAFFIC_UNAWARE: Не рекомендуется , поскольку выбор маршрута и его продолжительность зависят от дорожной сети и средних, не зависящих от времени условий дорожного движения. -
TRAFFIC_AWAREиTRAFFIC_AWARE_OPTIMAL: рекомендуются для отправлений, запланированных на ближайшее время, поскольку эти настройки учитывают текущую дорожную ситуацию. Чем ближе времяdepartureTimeк текущему моменту, тем важнее и актуальнее текущая дорожная ситуация. Чем дальше задано время отправления, тем больше учитывается историческая дорожная ситуация при выборе маршрута.
Получить токен маршрута
Токены маршрута — это веб-безопасное представление маршрута в кодировке Base64. Используйте токен маршрута для передачи маршрута в Navigation SDK. SDK использует этот токен для реконструкции маршрута и сохранения исходного навигационного намерения даже при перенаправлении.
Чтобы получить токен маршрута, выполните следующие действия:
- Установите режим путешествия на
DRIVING. - Установите для
routingPreferenceзначениеTRAFFIC_AWAREилиTRAFFIC_AWARE_OPTIMAL. - Запросите поле
routeToken.
В следующем примере запроса показано, как запросить токен маршрута:
// Define a traffic aware routes request with a route token. const requestWithRouteToken = { origin: '200 King St San Francisco, CA 94107', destination: 'Pier 41, San Francisco, CA 94133', travelMode: 'DRIVING', routingPreference: 'TRAFFIC_AWARE', fields: ['path', 'speedPaths', 'routeLabels', 'routeToken'], };