Отправляет OptimizeToursRequest, содержащий ShipmentModel, и возвращает OptimizeToursResponse, содержащий ShipmentRoute, которые представляют собой набор маршрутов, которые должны быть выполнены транспортными средствами, минимизируя общую стоимость.
Модель ShipmentModel в основном состоит из Shipment, которые нужно выполнить, и Vehicle, которые можно использовать для транспортировки Shipment. ShipmentRoute назначает Shipment Vehicle. В частности, они назначают каждому транспортному средству серию Visit, где Visit соответствует VisitRequest, то есть получению или доставке Shipment.
Цель состоит в том, чтобы назначить ShipmentRoute Vehicle так, чтобы минимизировать общую стоимость, где стоимость состоит из множества компонентов, определенных в ShipmentModel.
HTTP-запрос
POST https://routeoptimization.googleapis.com/v1/{parent=projects/*}:optimizeTours
URL имеет синтаксис gRPC Transcoding.
Параметры пути
| Параметры | |
|---|---|
parent |
Обязательно. Выберите проект или местоположение, чтобы позвонить. Формат:
Региональные значения |
Тело запроса
Ниже приведена структура данных в теле запроса.
| JSON-представление |
|---|
{ "timeout": string, "model": { object ( |
| Поля | |
|---|---|
timeout |
Если задано время ожидания, сервер возвращает ответ до истечения этого времени или до достижения крайнего срока для синхронных запросов (в зависимости от того, что наступит раньше). Для асинхронных запросов сервер генерирует решение (если возможно) до истечения времени ожидания. |
model |
Модель доставки, которую нужно решить. |
solvingMode |
По умолчанию используется режим |
searchMode |
Режим поиска, использованный для выполнения запроса. |
injectedFirstSolutionRoutes[] |
Направьте алгоритм оптимизации на поиск первого решения, похожего на предыдущее. Модель ограничивается при построении первого решения. Все доставки, не выполненные по маршруту, неявно пропускаются в первом решении, но могут быть выполнены в последующих решениях. Решение должно соответствовать некоторым базовым предположениям о валидности:
Если внедренное решение невыполнимо, ошибка проверки не обязательно возвращается, вместо нее может быть возвращена ошибка, указывающая на невыполнимость. |
injectedSolutionConstraint |
Ограничить алгоритм оптимизации, чтобы найти окончательное решение, похожее на предыдущее. Например, это может быть полезно, чтобы зафиксировать части маршрутов, которые уже пройдены или которые должны быть пройдены, но не должны изменяться. Если внедренное решение невыполнимо, ошибка проверки не обязательно возвращается, вместо нее может быть возвращена ошибка, указывающая на невыполнимость. |
refreshDetailsRoutes[] |
Если поле не пустое, указанные маршруты будут обновлены без изменения последовательности посещений или времени в пути. Будут обновлены только другие сведения. Это не решает модель. По состоянию на ноябрь 2020 года это поле заполняет только ломаные линии непустых маршрутов и требует, чтобы для Поля Это поле нельзя использовать вместе с Правила |
interpretInjectedSolutionsUsingLabels |
Если значение true:
Такая интерпретация применяется к полям Если задано значение true, ярлыки из следующих категорий должны появляться в своей категории не более одного раза:
Если Удаление посещений или целых маршрутов из внедренного решения может повлиять на подразумеваемые ограничения, что может привести к изменению решения, ошибкам проверки или невыполнимости. ПРИМЕЧАНИЕ. Вызывающий абонент должен убедиться, что каждый |
considerRoadTraffic |
Учитывайте оценку трафика при расчете полей |
populatePolylines |
Если задано значение true, в ответе |
populateTransitionPolylines |
Если задано значение true, в ответе |
allowLargeDeadlineDespiteInterruptionRisk |
Если это значение задано, то у запроса может быть крайний срок (см. https://grpc.io/blog/deadlines) до 60 минут. В противном случае максимальный срок составляет 30 минут. Обратите внимание, что у долгосрочных запросов риск прерывания значительно выше, хотя и остается небольшим. |
useGeodesicDistances |
Если задано значение true, расстояния будут рассчитываться по геодезическим линиям, а не по Google Картам, а время в пути – по геодезическим линиям со скоростью, заданной в поле |
label |
Ярлык, который можно использовать для идентификации этого запроса, возвращаемый в |
geodesicMetersPerSecond |
Если для параметра |
maxValidationErrors |
Ограничивает количество возвращаемых ошибок проверки. Обычно эти ошибки прикрепляются к полезной нагрузке ошибки INVALID_ARGUMENT как сведения об ошибке BadRequest (https://cloud.google.com/apis/design/errors#error_details), если только solvingMode не имеет значение VALIDATE_ONLY. См. поле |
Тело ответа
Если ответ получен успешно, его тело содержит экземпляр OptimizeToursResponse.
Области авторизации
Требуется следующая область действия OAuth:
https://www.googleapis.com/auth/cloud-platform
Права доступа IAM
Требуется следующее разрешение IAM для ресурса parent:
routeoptimization.locations.use
Подробную информацию можно найти в документации по IAM.