Method: computeRouteMatrix

Recebe uma lista de origens e destinos e retorna um stream com informações de trajeto para cada combinação de origem e destino.

OBSERVAÇÃO:esse método exige que você especifique uma máscara de campo de resposta na entrada. É possível fornecer a máscara de campo de resposta usando o parâmetro de URL $fields ou fields ou o cabeçalho HTTP/gRPC X-Goog-FieldMask. Consulte os parâmetros e cabeçalhos de URL disponíveis. O valor é uma lista separada por vírgulas de caminhos de campo. Consulte esta documentação detalhada sobre como construir os caminhos de campo.

Por exemplo, neste método:

  • Máscara de campo de todos os campos disponíveis (para inspeção manual): X-Goog-FieldMask: *
  • Máscara de campo de durações, distâncias, status do elemento, condição e índices de elementos da rota (exemplo de configuração de produção): X-Goog-FieldMask: originIndex,destinationIndex,status,condition,distanceMeters,duration

É fundamental incluir status na máscara de campo. Caso contrário, todas as mensagens vão parecer estar OK. O Google não recomenda o uso da máscara de campo de resposta curinga (*) porque:

  • Selecionar apenas os campos necessários ajuda nosso servidor a economizar ciclos de computação, permitindo que retornemos o resultado com uma latência menor.
  • Selecionar apenas os campos necessários no seu trabalho de produção garante uma performance de latência estável. Podemos adicionar mais campos de resposta no futuro, e esses novos campos podem exigir mais tempo de computação. Se você selecionar todos os campos ou todos os campos no nível superior, poderá ocorrer uma degradação da performance, porque qualquer novo campo adicionado será incluído automaticamente na resposta.
  • Selecionar apenas os campos necessários resulta em um tamanho de resposta menor e, portanto, maior taxa de transferência de rede.

Solicitação HTTP

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

O URL usa a sintaxe de transcodificação gRPC.

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação 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)
  }
}
Campos
origins[]

object (RouteMatrixOrigin)

Obrigatório. Matriz de origens que determina as linhas da matriz de resposta. Várias restrições de tamanho se aplicam à cardinalidade de origens e destinos:

  • A soma do número de origens e destinos especificados como placeId ou address não pode ser maior que 50.
  • O produto do número de origens × número de destinos não pode ser maior que 625 em nenhum caso.
  • O produto do número de origens × número de destinos não pode ser maior que 100 se routingPreference estiver definido como TRAFFIC_AWARE_OPTIMAL.
  • O produto do número de origens × número de destinos não pode ser maior que 100 se travelMode estiver definido como TRANSIT.
destinations[]

object (RouteMatrixDestination)

Obrigatório. Matriz de destinos, que determina as colunas da matriz de resposta.

travelMode

enum (RouteTravelMode)

Opcional. Especifica o meio de transporte.

routingPreference

enum (RoutingPreference)

Opcional. Especifica como calcular o trajeto. O servidor tenta usar a preferência de roteamento selecionada para calcular a rota. Se a preferência de roteamento resultar em um erro ou uma latência muito longa, um erro será retornado. Você só pode especificar essa opção quando travelMode é DRIVE ou TWO_WHEELER. Caso contrário, a solicitação falha.

departureTime

string (Timestamp format)

Opcional. O horário de partida. Se você não definir esse valor, ele será definido como o horário em que você fez a solicitação. OBSERVAÇÃO: só é possível especificar um departureTime no passado quando RouteTravelMode está definido como TRANSIT.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de "Z", outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

arrivalTime

string (Timestamp format)

Opcional. O horário de chegada. OBSERVAÇÃO: só pode ser definido quando RouteTravelMode é definido como TRANSIT. É possível especificar departureTime ou arrivalTime, mas não ambos.

Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de "Z", outros ajustes também são aceitos. Exemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

languageCode

string

Opcional. O código de idioma BCP-47, como "pt-BR" ou "en-US". Para saber mais, consulte Identificador de localidade Unicode. Consulte Suporte de idioma para conferir a lista de idiomas disponíveis. Quando você não fornece esse valor, o idioma de exibição é inferido da localização da primeira origem.

regionCode

string

Opcional. O código da região, especificado como um valor ccTLD ("domínio de nível superior") de dois caracteres. Para mais informações, consulte Domínios de nível superior de código de país.

units

enum (Units)

Opcional. Especifica as unidades de medida dos campos de exibição.

extraComputations[]

enum (ExtraComputation)

Opcional. Uma lista de cálculos extras que podem ser usados para concluir a solicitação. Observação: esses cálculos extras podem retornar campos extras na resposta. Esses campos extras também precisam ser especificados na máscara de campo para serem retornados na resposta.

trafficModel

enum (TrafficModel)

Opcional. Especifica as proposições a serem usadas ao calcular o tempo no trânsito. Essa configuração afeta o valor retornado no campo de duração no RouteMatrixElement, que contém o tempo previsto no trânsito com base nas médias históricas. TrafficModel só está disponível para solicitações que definiram RoutingPreference como TRAFFIC_AWARE_OPTIMAL e RouteTravelMode como DRIVE. O padrão é BEST_GUESS se o trânsito for solicitado e TrafficModel não for especificado.

transitPreferences

object (TransitPreferences)

Opcional. Especifica preferências que influenciam a rota retornada para rotas TRANSIT. OBSERVAÇÃO: só é possível especificar um transitPreferences quando RouteTravelMode está definido como TRANSIT.

Corpo da resposta

Contém informações de trajeto calculadas para um par origem/destino na API v2.computeRouteMatrix. Esse proto pode ser transmitido para o cliente.

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

Representação 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
}
Campos
status

object (Status)

Código de status de erro para este elemento.

condition

enum (RouteMatrixElementCondition)

Indica se o trajeto foi encontrado ou não. Independente do status.

distanceMeters

integer

A distância da viagem da rota, em metros.

duration

string (Duration format)

O tempo necessário para percorrer o trajeto. Se você definir routingPreference como TRAFFIC_UNAWARE, esse valor será o mesmo que staticDuration. Se você definir routingPreference como TRAFFIC_AWARE ou TRAFFIC_AWARE_OPTIMAL, esse valor será calculado considerando as condições de trânsito.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

staticDuration

string (Duration format)

A duração da viagem pelo trajeto sem considerar as condições de trânsito.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

travelAdvisory

object (RouteTravelAdvisory)

Informações adicionais sobre o trajeto. Por exemplo, informações de restrição e de pedágio

fallbackInfo

object (FallbackInfo)

Em alguns casos, quando o servidor não consegue calcular o trajeto com as preferências especificadas para um determinado par origem/destino, ele pode usar outro modo de cálculo. Quando o modo de substituição é usado, esse campo contém informações detalhadas sobre a resposta de substituição. Caso contrário, esse campo não será definido.

localizedValues

object (LocalizedValues)

Representações de texto das propriedades do RouteMatrixElement.

originIndex

integer

Índice baseado em zero da origem na solicitação.

destinationIndex

integer

Índice com base em zero do destino na solicitação.

RouteMatrixOrigin

Uma única origem para ComputeRouteMatrixRequest

Representação JSON
{
  "waypoint": {
    object (Waypoint)
  },
  "routeModifiers": {
    object (RouteModifiers)
  }
}
Campos
waypoint

object (Waypoint)

Obrigatório. Ponto de referência de origem

routeModifiers

object (RouteModifiers)

Opcional. Modificadores para cada trajeto que usa esse local como origem

RouteMatrixDestination

Um único destino para ComputeRouteMatrixRequest

Representação JSON
{
  "waypoint": {
    object (Waypoint)
  }
}
Campos
waypoint

object (Waypoint)

Obrigatório. Ponto de parada de destino

ExtraComputation

Cálculos extras a serem realizados ao concluir a solicitação.

Tipos enumerados
EXTRA_COMPUTATION_UNSPECIFIED Não utilizado. As solicitações que contiverem esse valor vão falhar.
TOLLS Informações de pedágio para os elementos da matriz.

RouteMatrixElementCondition

A condição da rota que está sendo retornada.

Tipos enumerados
ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED Usado somente quando o status do elemento não é OK.
ROUTE_EXISTS Uma rota foi encontrada, e as informações correspondentes foram preenchidas para o elemento.
ROUTE_NOT_FOUND Nenhum trajeto foi encontrado. Os campos que contêm informações de trajeto, como distanceMeters ou duration, não serão preenchidos no elemento.

LocalizedValues

Representações de texto de determinadas propriedades.

Representação JSON
{
  "distance": {
    object (LocalizedText)
  },
  "duration": {
    object (LocalizedText)
  },
  "staticDuration": {
    object (LocalizedText)
  },
  "transitFare": {
    object (LocalizedText)
  }
}
Campos
distance

object (LocalizedText)

Distância percorrida representada em formato de texto.

duration

object (LocalizedText)

Duração representada em formato de texto, considerando as condições de trânsito. Observação: se as informações de trânsito não foram solicitadas, esse valor será igual a staticDuration.

staticDuration

object (LocalizedText)

Duração representada em formato de texto sem considerar as condições de trânsito.

transitFare

object (LocalizedText)

Tarifa de transporte público representada em formato de texto.