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

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

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

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

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

Свойства OptimizeToursRequest

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

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

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

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

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

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

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

  • pickups[] и deliveries[] обозначают места, где можно забрать или оставить груз. Свойства pickups[] и deliveries[] используют сообщение VisitRequest ( REST , gRPC ).
  • loadDemands представляет собой нагрузку, необходимую транспортному средству для выполнения перевозки. Соответствующее свойство load_limits ( REST , gRPC ) транспортных средств показывает, какую нагрузку транспортное средство может выдержать за один раз. Подробнее о нагрузке читайте в разделе «Требования и пределы нагрузки» .
  • 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