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 surTRAFFIC_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
etcondition
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 des 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.