Маршруты для крупногабаритного транспорта

Функция "Маршрутизация перевозок для крупногабаритных транспортных средств" позволяет оптимизировать маршруты автопарка для крупногабаритных транспортных средств, указав их физические размеры, вес и количество прицепов. 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.