Выбранные вами настройки трафика балансируют точность деталей маршрута с производительностью запроса одним из двух способов:
- С учетом загруженности дорог: возвращает наиболее точные результаты (с большей задержкой).
- Без учета дорожной обстановки: результаты возвращаются как можно быстрее (с минимальной задержкой).
При отправке запроса решите, что для вас важнее: получить максимально точные результаты или получить их как можно быстрее. Библиотека Routes предоставляет параметры, позволяющие контролировать качество данных ответа и задержку ответа.
Как задать уровень загруженности дорог и модель трафика
Чтобы указать уровень трафика, задайте для ComputeRoutesRequest значение routingPreference. Ниже перечислены доступные варианты routingPreference.
TRAFFIC_UNAWARE(по умолчанию) – результаты возвращаются быстрее всего, но маршрут будет приблизительным.TRAFFIC_AWARE: возвращает более точные результаты, используя данные о трафике в реальном времени, но с большей задержкой.TRAFFIC_AWARE_OPTIMAL: возвращает наиболее точные результаты, используя данные о трафике в реальном времени, но с самой высокой задержкой.
Свойство TRAFFIC_MODEL определяет, какие допущения следует использовать при прогнозировании времени в пути с учетом дорожного движения (
TrafficModel.BEST_GUESS (по умолчанию),
TrafficModel.OPTIMISTIC,
TrafficModel.PESSIMISTIC).
Как выбрать маршрут с учетом загруженности дорог
Чтобы создать запрос маршрута с учетом трафика, выполните следующие действия:
-
Задайте для свойства
travelModeзначениеDRIVING. -
Задайте для свойства
routingPreferenceодно из следующих значений:TRAFFIC_AWARETRAFFIC_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 Карты".
Если вы используете этот параметр с computeRouteMatrix, количество элементов в запросе (количество пунктов отправления × количество пунктов назначения) не может превышать 25.
Вот какие ответы вы увидите:
duration– расчетное время прибытия по маршруту с учетом информации о дорожной ситуации в реальном времени.staticDuration– расчетное время прибытия по маршруту с учетом только исторических данных о трафике.
Укажите время отправления (необязательно)
Используйте это свойство только для запросов с учетом трафика, в которых время отправления должно быть в будущем. Если вы не зададите свойство departureTime, по умолчанию будет использоваться время, когда вы сделали запрос.
Используйте свойство departureTime вместе с параметрами TRAFFIC_AWARE и TRAFFIC_AWARE_OPTIMAL, чтобы настроить прогнозирование трафика при выборе маршрута.
TRAFFIC_UNAWARE– не рекомендуется, поскольку выбор маршрута и расчет длительности поездки будут произведены с учетом средней загруженности дорог.TRAFFIC_AWAREиTRAFFIC_AWARE_OPTIMAL: Рекомендуется для отправлений, которые состоятся в ближайшее время, поскольку эти параметры учитывают текущую загруженность дорог. Чем ближе время отправленияdepartureTimeк текущему моменту, тем сильнее результат будет зависеть от текущей ситуации. Чем дальше в будущем вы укажете время отправления, тем больше будет учитываться статистика загруженности дорог при выборе маршрутов.
Как получить токен маршрута
Токены маршрутов – это безопасное для интернета представление маршрута в кодировке Base64. Используйте токен маршрута, чтобы поделиться маршрутом с Navigation SDK. SDK использует этот токен, чтобы восстановить маршрут и сохранить исходную цель навигации даже при изменении маршрута.
Чтобы получить токен маршрута, выполните следующие действия:
- Задайте для travelMode значение
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'], };