Calcular uma matriz de rota

Você pode calcular a distância e a duração de um trajeto para vários origens e destinos usando o método ComputeRouteMatrix da API Routes Preferred. ComputeRouteMatrix suporta chamadas gRPC de streaming e chamadas HTTP REST.

Com uma lista de pares de origem e destino, ComputeRouteMatrix calcula a distância e a duração de um trajeto começando em cada origem e terminando em cada destino. Cada elemento do fluxo corresponde às informações de um único trajeto.

O método ComputeRouteMatrix tem várias vantagens em relação Serviço Distance Matrix:

  • O streaming permite que os elementos sejam retornados antes de toda a matriz da latência, o que reduz a latência.
  • O ComputeRouteMatrix tem opções refinadas para o cálculo de tráfego, permitindo que você tome decisões compensação de qualidade e latência.
  • As solicitações são executadas com prioridade mais alta na infraestrutura do Google, o que resulta em maior disponibilidade.
  • Você pode especificar a direção (direção da viagem) e o lado da estrada informações sobre waypoints.
  • Você pode solicitar a devolução de informações de pedágio, bem como distância do trajeto e HEC.

Ativar o método ComputeRouteMatrix

Antes de usar o método ComputeRouteMatrix no código, você precisa: ativá-la. Para mais informações sobre como ativar a API Routes Preferred métodos, consulte Primeiros passos.

Usar o método ComputeRouteMatrix

O método ComputeRouteMatrix está disponível na API Routes Preferred Endpoint v1.

Consulte a documentação a seguir para conferir informações mais detalhadas:

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1

REST: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix

As etapas genéricas a seguir descrevem como usar o gRPC para chamar O método ComputeRouteMatrix:

  1. Confira os protobuffers necessários do repositório googleapis:

    https://github.com/googleapis/googleapis/tree/master/google/maps/routes

    Alguns sistemas de build, como o Go, podem fazer isso automaticamente.

  2. Usando sua linguagem preferida e um conjunto de ferramentas de build, gere a versão protobuffer.

  3. Gere a solicitação. É necessário enviar duas partes obrigatórias dos metadados com a solicitação:

    • X-Goog-Api-Key precisa ser definido como sua chave de API.
    • X-Goog-Fieldmask precisa ser definido como uma lista dos campos separada por vírgulas; que você precisa na resposta. Por exemplo: X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status. Você pode usar o caractere curinga (*) para indicar todos os campos, mas desanimado. Use o caractere curinga para testar e entender o resposta da API, mas listar explicitamente os campos que você quer na máscara de campo no código de produção.

      Para mais informações sobre como construir a string da máscara de campo, consulte https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto. Desativar os campos desnecessários pode reduzir a latência, já que esses campos podem exigir mais cálculos. Sua latência não vai mudar estável se você especificar os campos necessários e novos campos que exigem mais computação são adicionados depois.

  4. Envie sua solicitação para routespreferred.googleapis.com:443.Use o protocolo TLS.

Para exemplos de como usar o método ComputeRouteMatrix, consulte Exemplos de computação de uma matriz de rota (Beta)

Uma característica distinta do método ComputeRouteMatrix é que podem ser retornados para toda a transmissão ou para palavras-chave os elementos. Por exemplo, a conexão de stream retorna um erro se a solicitação está malformada (por exemplo, não tem origens); No entanto, se ocorrer um erro, a apenas alguns elementos do fluxo (por exemplo, definir um ID de lugar inválido para uma origem), somente os elementos afetados pelo erro conterão códigos de erro.

Não há garantia de que os elementos retornados pelo stream sejam retornados. em qualquer ordem. Por isso, cada elemento contém uma origin_index e um destination_index. Para as origens e os destinos especificados pela solicitação, a origem da rota será equivalente a origins[origin_index] para um determinado elemento, e o destino da rota é equivalente para destinations[destination_index]. Essas matrizes são indexadas zero. Ela é importante armazenar os pedidos da lista de origem e destino.

Como calcular taxas de pedágio

Para informações sobre o cálculo das taxas de pedágio, consulte Calcular taxas de pedágio

Para ver exemplos de cálculo de taxas de pedágio, consulte Como calcular uma matriz de rota (em inglês).