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

object ( RouteMatrixOrigin )

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

  • Сумма количества отправителей + количества пунктов назначения, указанных в качестве placeId или address не должна превышать 50.
  • В любом случае произведение количества отправлений × количество пунктов назначения не должно превышать 625.
  • Произведение количества отправителей × количество пунктов назначения не должно превышать 100, если для параметра RoutePreference установлено значение 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 «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

arrivalTime

string ( Timestamp format)

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

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

languageCode

string

Необязательный. Код языка BCP-47, например «en-US» или «sr-Latn». Дополнительные сведения см. в разделе Идентификатор локали Unicode . Список поддерживаемых языков см. в разделе « Поддержка языков». Если вы не укажете это значение, язык отображения будет определяться на основе местоположения первого источника.

regionCode

string

Необязательный. Код региона в виде двухсимвольного значения ccTLD («домен верхнего уровня»). Дополнительную информацию см. в разделе Домены верхнего уровня с кодом страны .

units

enum ( Units )

Необязательный. Указывает единицы измерения для полей отображения.

extraComputations[]

enum ( ExtraComputation )

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

trafficModel

enum ( TrafficModel )

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

transitPreferences

object ( TransitPreferences )

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

Тело ответа

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

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

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

Индекс назначения в запросе, начинающийся с нуля.

МаршрутМатрицаПроисхождение

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

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

object ( Waypoint )

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

routeModifiers

object ( RouteModifiers )

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

МаршрутМатрицаНазначение

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

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

object ( Waypoint )

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

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

Дополнительные вычисления, которые необходимо выполнить при выполнении запроса.

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

МаршрутМатрицаЭлементУсловие

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

Перечисления
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 )

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