Acessar matriz de rota

Use a API Routes para calcular a distância e a duração de um trajeto várias origens e destinos chamando Método computeRouteMatrix (REST) ou o fluxo ComputeRouteMatrix (gRPC).

Com uma lista de origens e destinos, o método calcula a distância e a duração de um trajeto começando em cada origem e terminando em cada destino.

Acessar uma matriz de trajetos de transporte público

Também é possível calcular uma matriz de rotas em trânsito. Para um exemplo, consulte Ver uma matriz de trajetos no transporte público.

Limites de solicitações

Os métodos do Compute Route Matrix aplicam a solicitação a seguir limites para waypoints que usam address ou placeIDs e para elementos. Os elementos são as rotas entre cada origem e destino em uma matriz de rota, de modo que o número de elementos é o número de origens vezes o número de destinos. Para Por exemplo, se você tiver 10 origens e 10 destinos, terá 100 elementos:

  • O número de elementos não pode exceder 625 para trajetos que não são rotas TRANSIT.

  • Se você especificar um trajeto TRANSIT, o número de elementos não poderá ultrapassar 100.

  • Se você especificar TRAFFIC_AWARE_OPTIMAL, o número de elementos não poderá ultrapassar 100. Para mais informações sobre TRAFFIC_AWARE_OPTIMAL, consulte Especifique como e se incluir dados de tráfego.

  • Se você especificar origens ou destinos usando o endereço ou o ID do lugar, que você especificar até um total de 50 dessa maneira.

Erros de resposta

Um recurso dos métodos do Compute Route Matrix é que os erros podem retornados para toda a resposta ou para elementos de resposta individuais. Por exemplo, a resposta inteira contém um erro se a solicitação for malformada (por exemplo, tem origens zero).

No entanto, se um erro se aplicar a um subconjunto na resposta (por exemplo, uma rota não pode ser computada para um combinação de origem e destino), apenas os elementos afetados pelo error retorne um código de erro.

Resultados do fluxo gRPC

A ComputeRouteMatrix O método gRPC recebe uma lista de origens e destinos e retorna um stream que contêm informações de trajeto para cada combinação de origem e destino. Como os resultados são retornados como um stream, não é preciso esperar até que possíveis combinações de rotas são calculadas antes de você começar a processar o resultados.

Os elementos retornados pelo stream não têm garantia de retorno em nenhuma ordem. Portanto, cada elemento de resposta contém um origin_index e um destination_index. Para as origens e os destinos especificados pela solicitação, a origem do trajeto é equivalente a origins[origin_index] para um determinado elemento. e o destino da rota é equivalente a destinations[destination_index]. Essas matrizes são indexadas zero. É importante armazenar a origem e pedidos de lista de destino.

Exemplos de matriz de rota

Usar a classe computeRouteMatrix em uma solicitação HTTP para calcular uma matriz de rota.

Exemplo HTTP

O exemplo a seguir mostra uma solicitação HTTP computeRouteMatrix. Neste exemplo você:

  • Especifique uma matriz de dois waypoints de origem e dois de destino. Método calcula um trajeto de cada origem para cada destino de modo que a resposta contém quatro rotas.

    Na matriz, o primeiro elemento está em um índice de 0, o segundo é o índice 1, e assim por diante.

  • Inclua uma máscara de campo de resposta para especificar quais campos do resposta (REST) ou ComputeRoutesResponse (gRPC) a ser retornado. Neste exemplo, configure a solicitação para retornar originIndex, destinationIndex, duration, distanceMeters, status, e condition para cada trajeto. Para mais informações, consulte Escolha os campos que serão retornados.

curl -X POST -d '{
  "origins": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420761,
            "longitude": -122.081356
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.403184,
            "longitude": -122.097371
          }
        }
      },
      "routeModifiers": { "avoid_ferries": true}
    }
  ],
  "destinations": [
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.420999,
            "longitude": -122.086894
          }
        }
      }
    },
    {
      "waypoint": {
        "location": {
          "latLng": {
            "latitude": 37.383047,
            "longitude": -122.044651
          }
        }
      }
    }
  ],
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status,condition' \
'https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix'

A resposta contém as quatro rotas possíveis para a combinação de todas as origens e waypoints do destino.

Identifique cada rota na resposta usando os métodos originIndex e destinationIndex campos de resposta. Por exemplo, um originIndex de 1 no corresponde a um trajeto calculado a partir do ponto de referência no índice 1 do Matriz origins na solicitação.

[
    {
        "originIndex": 0,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 822,
        "duration": "160s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 0,
        "status": {},
        "distanceMeters": 2919,
        "duration": "361s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 1,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 5598,
        "duration": "402s",
        "condition": "ROUTE_EXISTS"
    },
    {
        "originIndex": 0,
        "destinationIndex": 1,
        "status": {},
        "distanceMeters": 7259,
        "duration": "712s",
        "condition": "ROUTE_EXISTS"
    }
]

Exemplos de gRPC

Por exemplo, para solicitações gRPC, consulte os exemplos em Exemplo de solicitação gRPC. A linguagem Java nessa página chama as APIs Compute Routes e Compute Routes Matrix.