Obtenir une matrice de routage

Utilisez l'API Routes pour calculer la distance et la durée d'un itinéraire pour plusieurs points de départ et destinations en appelant la méthode Méthode computeRouteMatrix (REST) ou le traitement par flux ComputeRouteMatrix (gRPC).

À partir d'une liste de points de départ et de destinations, la méthode calcule la distance et la durée d'un itinéraire à partir de chaque point de départ et se terminant à chaque destination.

Obtenir une matrice d'itinéraires en transports en commun

Vous pouvez également calculer une matrice d'itinéraires en transports en commun. Pour une consultez l'article Obtenir une matrice d'itinéraire en transports en commun.

Limites de requêtes

Les méthodes Compute Route Matrix appliquent la requête suivante des limites pour les points de cheminement utilisant des adresses ou des ID de lieu, ainsi que pour les éléments. Les éléments sont les itinéraires entre chaque point de départ et chaque destination dans une matrice d'itinéraires, de sorte que le nombre des éléments correspond au nombre d'origines fois le nombre de destinations. Pour Par exemple, si vous avez 10 points de départ et 10 destinations, vous avez 100 éléments:

  • Pour les routes, le nombre d'éléments ne peut pas dépasser 625 qui ne sont pas des routes TRANSIT.

  • Si vous spécifiez une route TRANSIT, le nombre d'éléments ne peut pas dépasser 100.

  • Si vous spécifiez TRAFFIC_AWARE_OPTIMAL, le nombre d'éléments ne peut pas dépasse 100. Pour en savoir plus sur TRAFFIC_AWARE_OPTIMAL, consultez Spécifiez si et comment inclure les données de trafic.

  • Si vous spécifiez des points de départ ou des destinations à l'aide d'une adresse ou d'un ID de lieu : vous spécifiez ainsi jusqu'à 50 éléments au total.

Erreurs de réponse

L'une des caractéristiques des méthodes Compute Route Matrix est que les erreurs peuvent être renvoyé soit pour l'ensemble de la réponse, soit pour des éléments de réponse individuels. Par exemple, la réponse entière contient une erreur si le format de la requête est incorrect. (par exemple, son origine est nulle).

Toutefois, si une erreur s'applique à un sous-ensemble dans la réponse (par exemple, un itinéraire ne peut pas être calculé combinaison de point de départ et de destination), seuls les éléments concernés par le renvoie un code d'erreur.

Résultats du flux gRPC

ComputeRouteMatrix La méthode gRPC prend une liste d'origines et de destinations, et renvoie un flux contenant des informations sur les itinéraires associés à chaque combinaison d'itinéraires (point de départ et destination). Comme les résultats sont renvoyés sous forme de flux, vous n'avez pas à attendre les combinaisons d'itinéraires possibles sont calculées avant de pouvoir commencer à traiter résultats.

Il n'est pas garanti que les éléments renvoyés par le flux soient renvoyés dans une commande. Par conséquent, chaque élément de réponse contient un origin_index et un destination_index Pour les points de départ et les destinations spécifiés par la requête, le point de départ de l'itinéraire est équivalent à origins[origin_index] pour un élément donné. et la destination de l'itinéraire est équivalente à destinations[destination_index]. Ces tableaux sont indexés par zéro. Il est important de stocker l'origine les ordres de liste de destination.

Exemples de calcul d'une matrice de routes

Utiliser computeRouteMatrix dans une requête HTTP pour calculer une matrice de routage.

Exemple HTTP

L'exemple suivant illustre une requête HTTP computeRouteMatrix. Dans cet exemple vous:

  • Spécifiez un tableau comportant deux points de cheminement de départ et deux points de cheminement de destination. La méthode calcule un itinéraire entre chaque point de départ et chaque destination, de sorte que la réponse contient quatre routes.

    Dans le tableau, l'indice du premier élément est 0, le deuxième l'indice 1, et ainsi de suite.

  • Incluez un masque de champ de réponse pour spécifier les champs du réponse (REST) ou ComputeRoutesResponse (gRPC) à renvoyer. Dans cet exemple, configurez la requête pour qu'elle renvoie originIndex, destinationIndex, duration, distanceMeters, status et condition pour chaque itinéraire. Pour en savoir plus, consultez Sélectionnez les champs à renvoyer.

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'

La réponse contient les quatre routes possibles pour la combinaison de tous les points de départ. et les points de cheminement de destination.

Identifiez chaque route dans la réponse à l'aide de originIndex et Champs de réponse destinationIndex. Par exemple, un originIndex de 1 dans correspond à un itinéraire calculé à partir du point de cheminement à l'index 1 de la origins dans la requête.

[
    {
        "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"
    }
]

Exemples gRPC

Pour obtenir des exemples de requêtes gRPC, consultez les exemples Exemple de requête gRPC. L'API Java de cette page appelle à la fois les instances Compute Routes Compute Route Matrix.