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