Отправляет запрос 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/*/locations/*}:optimizeTours
URL использует синтаксис перекодировки gRPC .
Параметры пути
| Параметры | |
|---|---|
parent | Обязательно. Укажите проект или место для звонка. Формат:
Если местоположение не указано, регион будет выбран автоматически. |
Текст запроса
Тело запроса содержит данные со следующей структурой:
| JSON-представление |
|---|
{ "timeout": string, "model": { object ( |
| Поля | |
|---|---|
timeout | Если этот тайм-аут установлен, сервер возвращает ответ до истечения периода тайм-аута или достижения крайнего срока сервера для синхронных запросов, в зависимости от того, что наступит раньше. Для асинхронных запросов сервер сгенерирует решение (если это возможно) до истечения времени ожидания. Длительность в секундах, содержащая до девяти знаков после запятой, заканчивается на « |
model | Решить модель отгрузки. |
solvingMode | По умолчанию режим решения — |
searchMode | Режим поиска, используемый для решения запроса. |
injectedFirstSolutionRoutes[] | Направьте алгоритм оптимизации на поиск первого решения, похожего на предыдущее решение. Модель ограничена при построении первого решения. Любые перевозки, не выполненные по маршруту, неявно пропускаются в первом решении, но могут быть выполнены в последующих решениях. Решение должно удовлетворять некоторым основным предположениям о достоверности:
Если введенное решение нецелесообразно, ошибка проверки не обязательно возвращается, вместо этого может быть возвращена ошибка, указывающая на невозможность. |
injectedSolutionConstraint | Ограничьте алгоритм оптимизации поиском окончательного решения, аналогичного предыдущему. Например, это можно использовать для фиксации участков маршрутов, которые уже выполнены или должны быть выполнены, но не должны изменяться. Если введенное решение нецелесообразно, ошибка проверки не обязательно возвращается, вместо этого может быть возвращена ошибка, указывающая на невозможность. |
refreshDetailsRoutes[] | Если поле не пустое, заданные маршруты будут обновлены без изменения базовой последовательности посещений или времени в пути: будут обновлены только другие данные. Это не решит модель. Начиная с 2020/11 года при этом заполняются только полилинии непустых маршрутов и требуется, чтобы Поля Это поле нельзя использовать вместе с |
interpretInjectedSolutionsUsingLabels | Если верно:
Эта интерпретация применяется к полям Если значение true, метки в следующих категориях должны появляться не более одного раза в своей категории:
Если метка Удаление посещений маршрутов или целых маршрутов из введенного решения может повлиять на подразумеваемые ограничения, что может привести к изменению решения, ошибкам проверки или невозможности его реализации. ПРИМЕЧАНИЕ: Вызывающий объект должен гарантировать, что каждый |
considerRoadTraffic | Учитывайте оценку трафика при расчете полей |
populatePolylines | Если true, полилинии будут заполнены в ответе |
populateTransitionPolylines | Если значение равно true, полилинии и маркеры маршрута будут заполнены в ответе |
allowLargeDeadlineDespiteInterruptionRisk | Если этот параметр установлен, запрос может иметь срок выполнения (см. https://grpc.io/blog/deadlines ) до 60 минут. В противном случае максимальный срок составляет всего 30 минут. Обратите внимание, что для длительных запросов риск прерывания значительно выше (хотя и невелик). |
useGeodesicDistances | Если значение равно true, расстояния проезда будут рассчитываться с использованием геодезических расстояний вместо расстояний Google Maps, а время проезда будет рассчитываться с использованием геодезических расстояний со скоростью, определяемой параметром |
label | Метка, которая может использоваться для идентификации этого запроса, возвращается в |
geodesicMetersPerSecond | Если |
maxValidationErrors | Усекает количество возвращаемых ошибок валидации. Эти ошибки обычно прикрепляются к полезной нагрузке ошибки INVALID_ARGUMENT в виде сведений об ошибке BadRequest ( https://cloud.google.com/apis/design/errors#error_details) , если не задан параметр solvedMode=VALIDATE_ONLY: см. поле |
Тело ответа
В случае успеха тело ответа содержит экземпляр OptimizeToursResponse .
Области авторизации
Требуется следующая область OAuth:
-
https://www.googleapis.com/auth/cloud-platform
Разрешения IAM
Требуется следующее разрешение IAM для parent ресурса:
-
routeoptimization.locations.use
Более подробную информацию см. в документации IAM .