Как кратко описано в разделе «Обзор оптимизации маршрута» , базовый запрос состоит из модели , поставок и транспортных средств в качестве обязательных объектов:
- Модель фиксирует настройки и ограничения для всего запроса, включая
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
обрабатывают сообщения запросов, как в примере выше, но по-разному. Прежде чем делать запрос на оптимизацию маршрута, важно понять разницу между этими двумя методами: