Отправляет 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 | Если это правда:
Эта интерпретация применяется к полям Если это правда, метки в следующих категориях должны появляться не более одного раза в своей категории:
Если Удаление посещений маршрута или целых маршрутов из внедренного решения может повлиять на подразумеваемые ограничения, что может привести к изменению решения, ошибкам проверки или невыполнимости. ПРИМЕЧАНИЕ. Вызывающий объект должен гарантировать, что каждый |
considerRoadTraffic | Учитывайте оценку трафика при вычислении полей |
populatePolylines | Если это правда, полилинии будут заполнены в ответах |
populateTransitionPolylines | Если это правда, полилинии и токены маршрута будут заполнены в ответе |
allowLargeDeadlineDespiteInterruptionRisk | Если этот параметр установлен, то срок выполнения запроса может составлять до 60 минут (см. https://grpc.io/blog/deadlines ). В противном случае максимальный срок составляет всего 30 минут. Обратите внимание, что долгоживущие запросы имеют значительно больший (но все же небольшой) риск прерывания. |
useGeodesicDistances | Если это правда, расстояния путешествия будут рассчитываться с использованием геодезических расстояний вместо расстояний Google Maps, а время в пути будет рассчитываться с использованием геодезических расстояний со скоростью, определенной |
label | Метка, которая может использоваться для идентификации этого запроса, указана в |
geodesicMetersPerSecond | Если |
maxValidationErrors | Усекает количество возвращаемых ошибок проверки. Эти ошибки обычно прикрепляются к полезным данным ошибки INVALID_ARGUMENT в виде сведений об ошибке BadRequest ( https://cloud.google.com/apis/design/errors#error_details) , за исключением случаев, когда solveMode=VALIDATE_ONLY: см. поле |
Тело ответа
В случае успеха тело ответа содержит экземпляр OptimizeToursResponse
.
Области авторизации
Требуется следующая область действия OAuth:
-
https://www.googleapis.com/auth/cloud-platform
IAM-разрешения
Требуется следующее разрешение IAM для parent
ресурса:
-
routeoptimization.locations.use
Дополнительную информацию см. в документации IAM .