Функция "Маршрутизация перевозок для крупногабаритных транспортных средств" позволяет оптимизировать маршруты автопарка для крупногабаритных транспортных средств, указав их физические размеры, вес и количество прицепов. API использует эти атрибуты для расчета возможных маршрутов, избегая дорог с ограничениями, низких мостов или маршрутов с ограничением по весу.
Благодаря этой функции вы сможете решать логистические задачи, связанные с тяжелыми и крупными транспортными средствами, например:
- Избегайте опасных участков дорог. Создавайте маршруты, которые не проходят через участки с низкими мостами, ограничениями по весу и другими физическими препятствиями.
- Указывать подробную информацию об автомобиле. Включайте в планы маршрутов для всего автопарка точные размеры, общий вес, количество осей и конфигурацию прицепа.
- Улучшенное планирование для всего автопарка. Создавайте эффективные маршруты для всех грузовиков, учитывая физические ограничения на дорогах.
- Включите пошаговую навигацию. Создавайте токены маршрутов для оптимизированной маршрутизации перевозок и передавайте их в Navigation SDK, чтобы направлять водителей с помощью навигации для крупногабаритных транспортных средств.
Ограничения
Перед началом работы ознакомьтесь с приведенными ниже ограничениями и требованиями.
- Географическая доступность. Маршруты для крупногабаритных транспортных средств доступны только в 48 штатах США.
- Рекомендации для водителей и безопасность. Водители не должны полагаться исключительно на маршруты, возвращаемые этим API, чтобы обеспечить безопасность и соблюдение правил дорожного движения. Маршруты могут не подходить для транспортного средства, и, следуя им, водители могут столкнуться с опасностями, например низкими мостами или дорогами, где запрещено движение крупногабаритных транспортных средств.
- Маршруты с учетом ограничений. В некоторых случаях API не может найти маршрут, который полностью соответствует ограничениям на поездки. Вместо этого он возвращает "наилучший" маршрут, который может проходить через запрещенные зоны.
- Неподдерживаемые функции. При прокладке маршрутов для крупногабаритного транспорта не поддерживаются:
- Стоимость проезда для грузовиков
- Ограничения скорости
- Маршруты для перевозки радиоактивных опасных материалов
- Оплата. Google выставляет счета за все запросы
optimizeToursпо единому тарифу, независимо от того, настроены ли в них свойства маршрутизации для крупногабаритных транспортных средств. - Маршруты для грузовиков. Маршруты для грузовиков длиной 500 км и более требуют больше времени на вычисления, чем более короткие маршруты, и могут возвращать данные о маршрутах более низкого качества. Чтобы маршруты были качественными, ограничивайте расстояния между отправками, начальными и конечными точками маршрутов. Если вам нужны длинные маршруты, увеличьте сроки запросов, чтобы снизить вероятность ошибок
DEADLINE_EXCEEDED.
Свойства
Чтобы использовать свойства маршрутизации для крупногабаритных транспортных средств, необходимо настроить транспортное средство, указав его физические размеры и задав режим маршрутизации "Грузовик".
В таблице ниже перечислены свойства верхнего уровня для настройки маршрутов для крупногабаритных транспортных средств.
| Свойство | Тип | Требования | Описание |
|---|---|---|---|
travelMode |
string | Обязательно | Указывает способ передвижения транспортного средства. Чтобы включить свойства маршрутов для крупногабаритных автомобилей, задайте значение TRUCK. |
routeModifiers |
Объект | Обязательно | Содержит конфигурации для определенных маршрутов, в том числе vehicleInfo. |
vehicleInfo
Объект vehicleInfo содержит физические характеристики автомобиля. Определите этот объект в свойстве routeModifiers.
Объект vehicleInfo обязателен, если для свойства travelMode задано значение TRUCK.
В таблице ниже перечислены свойства, доступные в объекте vehicleInfo.
| Свойство | Тип | Требования | Описание |
|---|---|---|---|
totalHeightMm |
Целое число | Обязательно | Общая высота автомобиля в миллиметрах. Значение должно быть положительным целым числом. |
totalWidthMm |
Целое число | Обязательно | Общая ширина автомобиля в миллиметрах. Значение должно быть положительным целым числом. |
totalWeightKg |
Целое число | Обязательно | Общий вес транспортного средства в килограммах. Значение должно быть положительным целым числом. |
totalLengthMm |
Целое число | Обязательно | Общая длина автомобиля в миллиметрах. Значение должно быть положительным целым числом. |
trailerInfo |
Массив | Необязательно | Содержит массив спецификаций прицепов, в том числе свойство lengthMm, позволяющее указать длину каждого прицепа в миллиметрах. |
totalAxleCount |
Целое число | Обязательно | Общее количество осей в транспортном средстве. Значение должно быть целым числом, большим или равным 2. |
Примеры
В этом разделе приведены два типа примеров:
- Пример кода, иллюстрирующий структуру маршрутизации крупногабаритных транспортных средств.
- Пример запроса, в котором используется функция.
Пример кода
В примере ниже показана структура свойств, используемых для построения маршрутов для крупногабаритных транспортных средств.
"vehicles": [ { "travelMode": "TRUCK", "routeModifiers": { "vehicleInfo": { "totalHeightMm": TOTAL_HEIGHT_MM, "totalWidthMm": TOTAL_WIDTH_MM, "totalWeightKg": TOTAL_WEIGHT_KG, "totalLengthMm": TOTAL_LENGTH_MM, "trailerInfo": [ { "lengthMm": TRAILER_LENGTH_MM } ], "totalAxleCount": TOTAL_AXLE_COUNT } } } ]
Пример запроса
В примере ниже показана структура базового запроса optimizeTours с учетом маршрутизации для крупногабаритных транспортных средств.
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 40.953523, "longitude": -72.2277846 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 40.9546673, "longitude": -72.2580151 } } ] } ], "vehicles": [ { "travelMode": "TRUCK", "routeModifiers": { "vehicleInfo": { "totalHeightMm": 4000, "totalWidthMm": 2500, "totalWeightKg": 9000, "totalLengthMm": 20000, "trailerInfo": [ { "lengthMm": 15000 } ], "totalAxleCount": 5 } }, "costPerKilometer": 1.0 } ] } }
Дальнейшие действия
- Пошаговая навигация. Узнайте, как передавать значение
routeToken, возвращаемое для каждого перехода, в Navigation SDK для Android или iOS. - Создание ломаных линий перехода и токенов маршрута. Узнайте, как запрашивать токены маршрута с помощью
populateTransitionPolylinesв разделе Ломаные линии перехода и токены маршрута. - Документация по API. Ознакомьтесь с полным списком полей в документации по
optimizeTours.