Создайте сообщение запроса

Как кратко описано в Обзоре оптимизации маршрута , базовый запрос состоит из Модели , Грузов и Транспортных средств в качестве обязательных сущностей:

  • Модель фиксирует настройки и ограничения для всего запроса, включая как Shipments , так и Vehicles .
  • Отправления представляют собой задачи или фактические отправки, которые включают в себя получение и доставку VisitRequest s. Отправления имеют локальные настройки и ограничения.
  • Транспортные средства представляют транспортные средства, водителей или персонал. Транспортные средства также имеют локальные настройки и ограничения.

Свойства каждой сущности описывают часть проблемы оптимизации на определенном уровне детализации. Ограничения, охватывающие всю модель, применяются ко всем отгрузкам и транспортным средствам, в то время как ограничения и свойства, указанные для отгрузок или транспортных средств, являются специфическими для одной отгрузки или транспортного средства.

Полную документацию по каждому типу сообщений см. в справочной документации по сообщениям ShipmentModel ( REST , gRPC ), Shipment ( REST , gRPC ) и Vehicle ( REST , gRPC ).

Свойства OptimizeToursRequest

Некоторые часто используемые свойства сообщения OptimizeToursRequest верхнего уровня ( REST , gRPC ) включают следующее:

  • searchMode указывает, следует ли возвращать первое решение, удовлетворяющее указанным ограничениям, или найти наилучшее возможное решение в установленные сроки.
  • considerRoadTraffic определяет, следует ли использовать данные о дорожном движении для определения маршрута и оценки времени прибытия.
  • populateTransitionPolylines определяет, возвращаются ли в ответе полилинии маршрута и токены маршрута.

Свойства модели

Некоторые часто используемые свойства сообщения ShipmentModel ( REST , gRPC ) включают в себя:

  • globalStartTime представляет собой самое раннее время начала маршрутов для всех транспортных средств и поставок. Ни одно транспортное средство не может начать свои первые переходы и поставки до этого времени.
  • globalEndTime представляет собой самое позднее время окончания маршрутов по всем транспортным средствам и перевозкам. Все назначенные перевозки и переходы должны быть завершены до этого времени.

Свойства груза

Некоторые часто используемые свойства сообщения Shipment ( REST , gRPC ) включают в себя:

  • pickups[] и deliveries[] представляют собой места, где можно забрать или доставить груз. Свойства pickups[] и deliveries[] используют сообщение VisitRequest ( REST , gRPC ).
  • loadDemands представляет собой нагрузку, необходимую для транспортного средства для завершения перевозки. Соответствующее транспортному средству свойство load_limits ( REST , gRPC ) представляет собой, какой объем нагрузки транспортное средство может вместить за один раз. Подробнее о нагрузке читайте в разделе Load Demands and Limits .
  • penalty_cost представляет собой стоимость, понесенную в случае пропуска поставки. Подробнее о стоимости читайте в разделе Параметры модели стоимости .

Свойства транспортного средства

Некоторые часто используемые свойства сообщения Vehicle ( REST , gRPC ) включают в себя:

  • startLocation представляет, где транспортное средство должно начать свой маршрут. Это свойство необязательно. Если не указано, маршрут транспортного средства начинается с места его первой назначенной отправки.
  • endLocation представляет, где транспортное средство должно закончить свой маршрут. Это свойство необязательно. Если не указано, маршрут транспортного средства заканчивается в месте его последней назначенной отправки.
  • startTimeWindows[] представляет, когда транспортное средство может начать свой маршрут. Это свойство необязательно.
  • endTimeWindows[] представляет, когда транспортное средство может начать и закончить свой маршрут. Оба свойства являются необязательными.
  • loadLimits отображает доступную мощность транспортного средства для удовлетворения потребностей в загрузке грузов. Подробнее о потребностях и ограничениях нагрузки читайте в разделе Потребности и ограничения нагрузки .

Полный пример запроса в формате JSON выглядит так:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "costPerKilometer": 1.0
      }
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}

OptimizeTours и BatchOptimizeTours оба используют сообщения запроса, как в примере выше, но по-разному. Перед тем, как сделать запрос оптимизации маршрута, важно понять разницу между двумя методами:

Сравнение OptimizeTours и BatchOptimizeTours