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