Цели — это параметры, которые заранее определяют общие цели оптимизации, такие как кратчайшее расстояние или продолжительность поездки, своевременная доставка, распределение нагрузки между водителями. Это призвано упростить разработчикам освоение 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" } }