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