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