Method: computeRouteMatrix

Принимает список пунктов отправления и назначения и возвращает поток, содержащий информацию о маршруте для каждой комбинации пункта отправления и назначения.

ПРИМЕЧАНИЕ. Этот метод требует, чтобы вы указали маску поля ответа во входных данных. Вы можете указать маску поля ответа, используя параметр URL-адреса $fields или fields или используя заголовок HTTP/gRPC X-Goog-FieldMask (см. доступные параметры и заголовки URL-адреса . Значение представляет собой список путей к полям, разделенных запятыми. См. подробную документацию о том, как создавать пути к полям .

Например, в этом методе:

  • Маска поля всех доступных полей (для ручной проверки): X-Goog-FieldMask: *
  • Маска поля длительности маршрута, расстояний, статуса элемента, состояния и индексов элемента (пример настройки производства): X-Goog-FieldMask: originIndex,destinationIndex,status,condition,distanceMeters,duration

Крайне важно, чтобы вы включали status в маску поля, иначе все сообщения будут выглядеть нормально. Google не рекомендует использовать маску поля ответа с подстановочным знаком ( * ), потому что:

  • Выбор только тех полей, которые вам нужны, помогает нашему серверу экономить вычислительные циклы, позволяя нам возвращать вам результат с меньшей задержкой.
  • Выбор только тех полей, которые вам нужны в рабочем задании, обеспечивает стабильную производительность задержки. Возможно, в будущем мы добавим больше полей ответа, и эти новые поля могут потребовать дополнительного времени вычислений. Если вы выберете все поля или если вы выберете все поля на верхнем уровне, вы можете столкнуться с ухудшением производительности, поскольку любое новое поле, которое мы добавляем, будет автоматически включено в ответ.
  • Выбор только тех полей, которые вам нужны, приводит к меньшему размеру ответа и, следовательно, к более высокой пропускной способности сети.

HTTP-запрос

POST https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix

URL-адрес использует синтаксис транскодирования gRPC .

Тело запроса

Тело запроса содержит данные со следующей структурой:

Представление JSON
{
  "origins": [
    {
      object (RouteMatrixOrigin)
    }
  ],
  "destinations": [
    {
      object (RouteMatrixDestination)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "departureTime": string,
  "languageCode": string,
  "regionCode": string,
  "extraComputations": [
    enum (ExtraComputation)
  ]
}
Поля
origins[]

object ( RouteMatrixOrigin )

Необходимый. Массив источников, который определяет строки матрицы ответов. Несколько ограничений по размеру применяются к кардинальности пунктов отправления и назначения:

  • В любом случае количество элементов (отправление × место назначения) не должно превышать 625.
  • Количество элементов (источники × пункты назначения) не должно превышать 100, если для параметра routingPreference установлено значение TRAFFIC_AWARE_OPTIMAL .
  • Количество путевых точек (отправление + пункт назначения), указанное как placeId , не должно превышать 50.
destinations[]

object ( RouteMatrixDestination )

Необходимый. Массив адресатов, определяющий столбцы матрицы ответов.

travelMode

enum ( RouteTravelMode )

Необязательный. Определяет вид транспорта.

routingPreference

enum ( RoutingPreference )

Необязательный. Указывает, как вычислить маршрут. Сервер пытается использовать выбранный параметр маршрутизации для расчета маршрута. Если предпочтение маршрутизации приводит к ошибке или слишком большой задержке, возвращается ошибка. Вы можете указать эту опцию, только если для travelMode установлено DRIVE или TWO_WHEELER , в противном случае запрос завершится ошибкой.

departureTime

string ( Timestamp format)

Необязательный. Время отправления. Если вы не зададите это значение, по умолчанию будет время, когда вы сделали запрос. Если вы установите это значение на время, которое уже произошло, запрос завершится ошибкой.

Временная метка в формате RFC3339 UTC "Zulu" с разрешением в наносекунды и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

languageCode

string

Необязательный. Код языка BCP-47, например «en-US» или «sr-Latn». Для получения дополнительной информации см. http://www.unicode.org/reports/tr35/#Unicode_locale_identifier . Список поддерживаемых языков см. в разделе Языковая поддержка . Если вы не укажете это значение, язык отображения выводится из местоположения первого источника.

regionCode

string

Необязательный. Код региона, указанный как двухсимвольное значение ccTLD («домен верхнего уровня»). Для получения дополнительной информации см. https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains#Country_code_top-level_domains .

extraComputations[]

enum ( ExtraComputation )

Необязательный. Список дополнительных вычислений, которые могут быть использованы для выполнения запроса. Примечание. Эти дополнительные вычисления могут возвращать дополнительные поля в ответе. Эти дополнительные поля также должны быть указаны в маске поля, которая будет возвращена в ответе.

Тело ответа

В случае успеха тело ответа содержит данные со следующей структурой:

Инкапсулирует информацию о маршруте, вычисленную для пары источник/пункт назначения в v2.computeRouteMatrix API. Этот прототип можно передать клиенту.

Представление JSON
{
  "status": {
    object (Status)
  },
  "condition": enum (RouteMatrixElementCondition),
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  },
  "fallbackInfo": {
    object (FallbackInfo)
  },
  "originIndex": integer,
  "destinationIndex": integer
}
Поля
status

object ( Status )

Код состояния ошибки для этого элемента.

condition

enum ( RouteMatrixElementCondition )

Указывает, был ли маршрут найден или нет. Независимость от статуса.

distanceMeters

integer

Протяженность маршрута, в метрах.

duration

string ( Duration format)

Время, необходимое для прохождения маршрута. Если вы установите для routingPreference значение TRAFFIC_UNAWARE , то это значение будет таким же, как staticDuration . Если для routingPreference установлено значение TRAFFIC_AWARE или TRAFFIC_AWARE_OPTIMAL , это значение рассчитывается с учетом условий трафика.

Длительность в секундах, содержащая до девяти дробных цифр, заканчивающаяся на « s ». Пример: "3.5s" .

staticDuration

string ( Duration format)

Продолжительность движения по маршруту без учета условий движения.

Длительность в секундах, содержащая до девяти дробных цифр, заканчивающаяся на « s ». Пример: "3.5s" .

travelAdvisory

object ( RouteTravelAdvisory )

Дополнительная информация о маршруте. Например: информация об ограничениях и информация о платных дорогах

fallbackInfo

object ( FallbackInfo )

В некоторых случаях, когда сервер не может рассчитать маршрут с заданными предпочтениями для этой конкретной пары отправной точки/назначения, он может вернуться к использованию другого режима вычисления. При использовании резервного режима это поле содержит подробную информацию о резервном ответе. В противном случае это поле не установлено.

originIndex

integer

Отсчитываемый от нуля индекс источника в запросе.

destinationIndex

integer

Отсчитываемый от нуля индекс адресата в запросе.

RouteMatrixOrigin

Единый источник для ComputeRouteMatrixRequest

Представление JSON
{
  "waypoint": {
    object (Waypoint)
  },
  "routeModifiers": {
    object (RouteModifiers)
  }
}
Поля
waypoint

object ( Waypoint )

Необходимый. Исходная путевая точка

routeModifiers

object ( RouteModifiers )

Необязательный. Модификаторы для каждого маршрута, который принимает это как начало

RouteMatrixDestination

Единое назначение для ComputeRouteMatrixRequest

Представление JSON
{
  "waypoint": {
    object (Waypoint)
  }
}
Поля
waypoint

object ( Waypoint )

Необходимый. Пункт назначения

Дополнительные вычисления

Дополнительные вычисления для выполнения при выполнении запроса.

перечисления
EXTRA_COMPUTATION_UNSPECIFIED Не используется. Запросы, содержащие это значение, не будут выполнены.
TOLLS Информация о платных дорогах для элемента(ов) матрицы.

RouteMatrixElementCondition

Состояние возвращаемого маршрута.

перечисления
ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED Используется только тогда, когда status элемента не в порядке.
ROUTE_EXISTS Маршрут был найден, и для элемента была заполнена соответствующая информация.
ROUTE_NOT_FOUND Не удалось найти маршрут. Поля, содержащие информацию о маршруте, например, distanceMeters или duration , не будут заполнены в элементе.