Acessar matriz de rota

Desenvolvedores do Espaço Econômico Europeu (EEE)

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

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

Acessar uma matriz de rotas de transporte público

Também é possível calcular uma matriz de rotas em trânsito. Por exemplo, consulte Receber uma matriz de rotas de transporte público.

Limites de solicitações

Os métodos Compute Route Matrix aplicam os seguintes limites de solicitação para pontos de referência usando endereços ou placeIDs e para elementos. Os elementos são os trajetos entre cada origem e destino em uma matriz de rotas. Portanto, o número de elementos é o número de origens vezes o número de destinos. Por exemplo, se você tiver 10 origens e 10 destinos, terá 100 elementos:

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

  • Se você especificar uma TRANSIT rota, o número de elementos não poderá exceder 100.

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

  • Se você especificar origens ou destinos usando endereço ou ID de lugar, poderá especificar até 50 no total dessa forma.

Erros de resposta

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

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

Resultados do gRPC Stream

O método gRPC ComputeRouteMatrix recebe uma lista de origens e destinos e retorna um fluxo com informações de trajeto para cada combinação de origem e destino. Como os resultados são retornados como um fluxo, não é necessário esperar até que todas as combinações de rotas possíveis sejam calculadas para começar a processar os resultados.

Não há garantia de que os elementos retornados pelo stream serão retornados em qualquer ordem. Portanto, cada elemento de resposta contém um origin_index e um destination_index. Para as origens e destinos especificados pela solicitação, a origem da rota é equivalente a origins[origin_index] para um determinado elemento, e o destino da rota é equivalente a destinations[destination_index]. Esses arrays são indexados com zero. É importante armazenar as ordens das listas de origem e destino.

Exemplos de cálculo de uma matriz de rotas

Use o método computeRouteMatrix em uma solicitação HTTP para calcular uma matriz de rotas.

Exemplo HTTP

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

  • Especifique uma matriz de dois pontos de referência de origem e dois de destino. O método calcula um trajeto de cada origem para cada destino. Portanto, a resposta contém quatro trajetos.

    Na matriz, o primeiro elemento está no índice 0, o segundo no índice 1 e assim por diante.

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

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 todos os pontos de partida e de destino.

Identifique cada rota na resposta usando os campos originIndex e destinationIndex. Por exemplo, um originIndex de 1 na resposta corresponde a um trajeto calculado do ponto de parada no índice 1 da 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. O exemplo em Java nessa página chama o Compute Routes e a Compute Route Matrix.