Цели — это параметры, которые заранее определяют общие цели оптимизации, такие как кратчайшее расстояние или продолжительность поездки, своевременная доставка, распределение нагрузки между водителями. Это сделано для того, чтобы разработчикам было проще перейти на API оптимизации маршрутов, прежде чем они начнут изучать тонкости и полную настройку параметров стоимости.
При установке ShipmentModel.objectives
полностью перезаписывают модель стоимости, поэтому они несовместимы с уже существующими затратами. Каждая Objective
сопоставляется с рядом предопределенных затрат для транспортных средств, поставок или атрибутов перехода.
При указании режима решения TRANSFORM_AND_RETURN_REQUEST
запрос не решается, а только проверяется и заполняется затратами, соответствующими заданным целям. Измененный запрос возвращается как OptimizeToursResponse.processed_request
. Все остальные режимы решения вернут решенный запрос.
Режим решения TRANSFORM_AND_RETURN_REQUEST
действителен только для запросов OptimizeTours
и недоступен для других запросов API оптимизации маршрутов.
Пример: Сделайте запрос ShipmentModel.objectives
Перед оформлением запроса выполните следующие действия:
- Убедитесь, что у вас настроены учетные данные приложения по умолчанию , как описано в разделе Использование OAuth .
Установите PROJECT_NUMBER_OR_ID на номер или идентификатор вашего облачного проекта.
Следующая команда отправляет
OptimizeToursRequest
в API оптимизации маршрута, который возвращаетOptimizeToursResponse
.curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- <<EOM { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 } } ] } ], "vehicles": [ { "travelMode": "DRIVING", } ], "objectives": [ { "type": "MIN_TRAVEL_TIME" } ], } } EOM
Пример: сделайте запрос TRANSFORM_AND_RETURN_REQUEST
Перед оформлением запроса выполните следующие действия:
- Убедитесь, что у вас настроены учетные данные приложения по умолчанию , как описано в разделе Использование OAuth .
Установите PROJECT_NUMBER_OR_ID на номер или идентификатор вашего облачного проекта.
Следующая команда отправляет
OptimizeToursRequest
в API оптимизации маршрутов, который возвращаетOptimizeToursResponse
с установленным полемProcessedRequest
. Предыдущая команда даст ответ, аналогичный следующей.curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- <<EOM { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 } } ] } ], "vehicles": [ { "travelMode": "DRIVING", } ], "objectives": [ { "type": "MIN_TRAVEL_TIME" } ] }, "solvingMode": "TRANSFORM_AND_RETURN_REQUEST" } EOM
{ "processedRequest": { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.425062610009959, "longitude": -122.09535511930135 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.424215032060211, "longitude": -122.09526063135228 } } ] } ], "vehicles": [ { "travelMode": "DRIVING", "costPerHour": 30, "costPerTraveledHour": 330, "costPerKilometer": 0.2 } ], "objectives": [ { "type": "MIN_TRAVEL_TIME" } ] }, "solvingMode": "TRANSFORM_AND_RETURN_REQUEST" } }