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 computeRouteMatrix (REST) ou la méthode de streaming 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 commençant à 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 obtenir un exemple, consultez Obtenir une matrice d'itinéraires en transports en commun.
Limites de requêtes
Les méthodes Compute Route Matrix appliquent les limites de requêtes suivantes pour les points de cheminement utilisant des adresses ou des ID de lieu, et pour les éléments. Les éléments sont les itinéraires entre chaque point de départ et chaque destination d'une matrice d'itinéraires. Le nombre d'éléments correspond donc au nombre de points de départ multiplié par le nombre de destinations. Par exemple, si vous avez 10 points de départ et 10 destinations, vous avez 100 éléments :
Le nombre d'éléments ne peut pas dépasser 625 pour les itinéraires qui ne sont pas des itinéraires
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épasser 100. Pour en savoir plus surTRAFFIC_AWARE_OPTIMAL, consultez Spécifier si et comment inclure des 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 pouvez en spécifier jusqu'à 50 au total de cette manière.
Erreurs de réponse
L'une des fonctionnalités des méthodes Compute Route Matrix est que les erreurs peuvent être renvoyées pour l'ensemble de la réponse ou pour des éléments de réponse individuels. Par exemple, la réponse entière contient une erreur si la requête est incorrecte (par exemple, si elle ne comporte aucune origine).
Toutefois, si une erreur s'applique à un sous-ensemble d'éléments de la réponse (par exemple, si un itinéraire ne peut pas être calculé pour une combinaison de point de départ et de destination), seuls les éléments concernés par l'erreur renvoient un code d'erreur.
Résultats du flux gRPC
La méthode gRPC ComputeRouteMatrix accepte une liste de points de départ et de destinations, et renvoie un flux contenant des informations d'itinéraire pour chaque combinaison de point de départ et de destination. Comme les résultats sont renvoyés sous forme de flux, vous n'avez pas besoin d'attendre que toutes les combinaisons d'itinéraires possibles soient calculées avant de pouvoir commencer à traiter les résultats.
Il n'est pas garanti que les éléments renvoyés par le flux soient renvoyés dans un ordre particulier. 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 équivaut à origins[origin_index] pour un élément donné, et la destination de l'itinéraire équivaut à destinations[destination_index].
Ces tableaux sont indexés à partir de zéro. Il est important de stocker les ordres des listes d'origine et de destination.
Exemples de calcul d'une matrice d'itinéraires
Utilisez la méthode computeRouteMatrix dans une requête HTTP pour calculer une matrice d'itinéraires.
Exemple HTTP
L'exemple suivant montre une requête HTTP computeRouteMatrix. Dans cet exemple, vous :
Spécifiez un tableau de deux points de départ et de deux points de destination. La méthode calcule un itinéraire entre chaque point de départ et chaque destination. La réponse contient donc quatre itinéraires.
Dans le tableau, le premier élément se trouve à l'index 0, le deuxième à l'index 1, et ainsi de suite.
Incluez un masque de champ de réponse pour spécifier les champs de la réponse (REST) ou de ComputeRoutesResponse (gRPC) à renvoyer. Dans cet exemple, configurez la requête pour qu'elle renvoie
originIndex,destinationIndex,duration,distanceMeters,statusetconditionpour chaque itinéraire. Pour en savoir plus, consultez Choisir 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 itinéraires possibles pour la combinaison de tous les points de cheminement de départ et de destination.
Identifiez chaque itinéraire de la réponse à l'aide des champs de réponse originIndex et destinationIndex. Par exemple, un originIndex de 1 dans la réponse correspond à un itinéraire calculé à partir du point de cheminement à l'index 1 du tableau 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 de la page Exemple de requête gRPC. L'exemple Java de cette page appelle à la fois Compute Routes et Compute Route Matrix.