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,
  "arrivalTime": string,
  "languageCode": string,
  "regionCode": string,
  "extraComputations": [
    enum (ExtraComputation)
  ],
  "trafficModel": enum (TrafficModel),
  "transitPreferences": {
    object (TransitPreferences)
  }
}
Поля
origins[]

object ( RouteMatrixOrigin )

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

  • Сумма количества источников + количество пунктов назначения, указанных либо как placeId , либо как address не должна превышать 50.
  • Произведение количества отправлений × количество мест назначения в любом случае не должно превышать 625.
  • Произведение количества источников на количество пунктов назначения не должно превышать 100, если для параметра routingPreference установлено значение TRAFFIC_AWARE_OPTIMAL .
  • Произведение количества пунктов отправления × количество пунктов назначения не должно превышать 100, если для параметра travelMode установлено значение TRANSIT .
destinations[]

object ( RouteMatrixDestination )

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

travelMode

enum ( RouteTravelMode )

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

routingPreference

enum ( RoutingPreference )

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

departureTime

string ( Timestamp format)

Необязательный. Время отправления. Если вы не зададите это значение, то оно будет по умолчанию равно времени, когда вы сделали запрос. ПРИМЕЧАНИЕ. departureTime можно указать только в прошлом, если для RouteTravelMode установлено значение TRANSIT .

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

arrivalTime

string ( Timestamp format)

Необязательный. Время прибытия. ПРИМЕЧАНИЕ. Можно установить, только если для RouteTravelMode установлено значение TRANSIT . Вы можете указать либо departureTime , либо arrivalTime , но не то и другое одновременно.

Временная метка в формате 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 )

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

trafficModel

enum ( TrafficModel )

Необязательный. Указывает допущения, используемые при расчете времени в пробке. Этот параметр влияет на значение, возвращаемое в поле продолжительности в RouteMatrixElement , которое содержит прогнозируемое время в трафике на основе средних значений за прошлые периоды. RoutingPreference на TRAFFIC_AWARE_OPTIMAL и RouteTravelMode на DRIVE . По умолчанию BEST_GUESS если запрашивается трафик, а TrafficModel не указан.

transitPreferences

object ( TransitPreferences )

Необязательный. Указывает предпочтения, влияющие на маршрут, возвращаемый для TRANSIT маршрутов. ПРИМЕЧАНИЕ. Вы можете указать transitPreferences только в том случае, если для RouteTravelMode установлено значение TRANSIT .

Тело ответа

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

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

Представление JSON
{
  "status": {
    object (Status)
  },
  "condition": enum (RouteMatrixElementCondition),
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  },
  "fallbackInfo": {
    object (FallbackInfo)
  },
  "localizedValues": {
    object (LocalizedValues)
  },
  "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 )

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

localizedValues

object ( LocalizedValues )

Текстовые представления свойств RouteMatrixElement .

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 , не будут заполнены в элементе.

Локализованные значения

Текстовые представления определенных свойств.

Представление JSON
{
  "distance": {
    object (LocalizedText)
  },
  "duration": {
    object (LocalizedText)
  },
  "staticDuration": {
    object (LocalizedText)
  },
  "transitFare": {
    object (LocalizedText)
  }
}
Поля
distance

object ( LocalizedText )

Пройденное расстояние представлено в текстовой форме.

duration

object ( LocalizedText )

Продолжительность представлена ​​в текстовом виде с учетом дорожных условий. Примечание. Если информация о трафике не запрашивалась, это значение совпадает со значением staticDuration.

staticDuration

object ( LocalizedText )

Продолжительность представлена ​​в текстовом виде без учета дорожных условий.

transitFare

object ( LocalizedText )

Транзитный тариф представлен в текстовом виде.