Calculer une matrice de routes
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Vous pouvez calculer la distance et la durée d'un itinéraire pour plusieurs points de départ et destinations à l'aide de la méthode ComputeRouteMatrix
de l'API Routes Preferred. ComputeRouteMatrix
est compatible avec les appels gRPC en streaming et les appels HTTP REST.
À partir d'une liste de paires point de départ-destination, ComputeRouteMatrix
calcule la distance et la durée d'un itinéraire commençant à chaque point de départ et se terminant à chaque destination. Chaque élément du flux correspond aux informations d'un seul itinéraire.
La méthode ComputeRouteMatrix
présente plusieurs avantages par rapport au service Distance Matrix :
- Le streaming permet de renvoyer des éléments avant que la matrice entière n'ait été calculée, ce qui réduit la latence.
ComputeRouteMatrix
propose des options précises pour le calcul du trafic, ce qui vous permet de prendre des décisions concernant le compromis entre qualité et latence.
- Les requêtes sont exécutées avec un niveau de priorité plus élevé dans l'infrastructure de Google, ce qui se traduit par une disponibilité accrue.
- Vous pouvez spécifier des informations sur le cap (direction du trajet) et le côté de la route pour les points de repère.
- Vous pouvez demander à ce que les informations sur les péages soient renvoyées, ainsi que la distance du trajet et l'heure d'arrivée prévue.
Activer la méthode ComputeRouteMatrix
Avant de pouvoir utiliser la méthode ComputeRouteMatrix
dans votre code, vous devez l'activer. Pour en savoir plus sur l'activation des méthodes de l'API Routes Preferred, consultez Premiers pas.
Utiliser la méthode ComputeRouteMatrix
La méthode ComputeRouteMatrix
est disponible via le point de terminaison Routes Preferred v1.
Pour en savoir plus, consultez la documentation suivante :
gRPC :
https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1
REST :
https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix
Les étapes génériques suivantes décrivent comment utiliser gRPC pour appeler la méthode ComputeRouteMatrix
:
Extrayez les protobuffers nécessaires du dépôt googleapis :
https://github.com/googleapis/googleapis/tree/master/google/maps/routes
Notez que certains systèmes de compilation, tels que Go, peuvent effectuer cette opération automatiquement pour vous.
Générez le code protobuffer approprié en utilisant votre langage et votre ensemble d'outils de compilation préférés.
Générez votre demande. Deux éléments de métadonnées obligatoires doivent être envoyés avec la demande :
- X-Goog-Api-Key doit être défini sur votre clé API.
X-Goog-Fieldmask doit être défini sur une liste de champs séparés par une virgule, que vous souhaitez obtenir dans la réponse. Par exemple, X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status.
Vous pouvez utiliser le caractère générique (*) pour désigner tous les champs, mais cela est déconseillé. Utilisez le caractère générique pour tester et comprendre la réponse de l'API, mais listez explicitement les champs souhaités dans le masque de champ de votre code de production.
Pour savoir comment créer la chaîne de masque de champ, consultez https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto.
Notez que la désactivation des champs dont vous n'avez pas besoin peut réduire la latence, car ces champs peuvent nécessiter des calculs supplémentaires. Votre latence restera stable si vous spécifiez les champs dont vous avez besoin et que de nouveaux champs nécessitant plus de calculs sont ajoutés ultérieurement.
Envoyez votre demande à routespreferred.googleapis.com:443
.Vous devez utiliser le protocole TLS.
Pour obtenir des exemples d'utilisation de la méthode ComputeRouteMatrix
, consultez Exemples de calcul d'une matrice de routes (bêta).
L'une des caractéristiques distinctives de la méthode ComputeRouteMatrix
est que les codes d'erreur peuvent être renvoyés pour l'ensemble du flux ou pour des éléments individuels. Par exemple, la connexion au flux renvoie une erreur si la requête est mal formée (par exemple, si elle ne comporte aucune origine). Toutefois, si une erreur ne s'applique qu'à quelques éléments du flux (par exemple, si un ID de lieu non valide est défini pour une origine), seuls les éléments concernés par l'erreur contiennent des codes d'erreur.
Il n'est pas garanti que les éléments renvoyés par le flux soient renvoyés dans un ordre quelconque. Par conséquent, chaque élément contient un origin_index
et un destination_index
. Pour les origines et les destinations spécifiées par la requête, l'origine de l'itinéraire est équivalente à 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'ordre des listes d'origine et de destination.
Calculer les péages
Pour savoir comment calculer les péages, consultez Calculer les péages.
Pour obtenir des exemples de calcul des péages, consultez Exemples de calcul d'une matrice de routage.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/22 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/22 (UTC)."],[[["\u003cp\u003eThe \u003ccode\u003eComputeRouteMatrix\u003c/code\u003e method in the Routes Preferred API calculates distances and durations for multiple origin-destination pairs, offering advantages like streaming results and traffic calculation options.\u003c/p\u003e\n"],["\u003cp\u003eIt's necessary to enable the \u003ccode\u003eComputeRouteMatrix\u003c/code\u003e method and understand quota limits before implementation, ensuring compliance with Google Maps Platform terms.\u003c/p\u003e\n"],["\u003cp\u003eThe method can be accessed through gRPC or REST, with specific steps outlined for using gRPC, including generating protobuffer code and configuring requests.\u003c/p\u003e\n"],["\u003cp\u003eResponses include \u003ccode\u003eorigin_index\u003c/code\u003e and \u003ccode\u003edestination_index\u003c/code\u003e to correlate results with input data since the order of elements is not guaranteed.\u003c/p\u003e\n"],["\u003cp\u003eToll fee calculation functionality is available within \u003ccode\u003eComputeRouteMatrix\u003c/code\u003e, allowing developers to incorporate toll costs into route planning.\u003c/p\u003e\n"]]],["The `ComputeRouteMatrix` method of the Routes Preferred API calculates route distance and duration for multiple origins and destinations via streaming gRPC or REST HTTP calls. It offers lower latency, fine-grained traffic options, higher availability, waypoint specifications, and toll information. To use it, enable the method, and send requests with API key and field mask. The method returns elements with `origin_index` and `destination_index`. Error codes can be returned for the entire stream or per individual element.\n"],null,["# Compute a Route Matrix\n\n\u003cbr /\u003e\n\n| This product or feature is in Preview (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google\n| Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage\n| descriptions](/maps/launch-stages).\n\n\u003cbr /\u003e\n\nYou can calculate the distance and duration of a route for multiple\norigins and destinations by using the `ComputeRouteMatrix` method\nof the Routes Preferred API. `ComputeRouteMatrix` supports\nboth streaming gRPC calls and REST HTTP calls.\n\nGiven a list of origin and destination pairs, `ComputeRouteMatrix`\ncalculates the distance and duration of a route starting at each origin\nand ending at each destination. Each element of the stream corresponds\nto the information for a single route.\n\nThe `ComputeRouteMatrix` method has several advantages over the\nDistance Matrix Service:\n\n- Streaming allows elements to be returned before the entire matrix has been calculated, lowering latency.\n- `ComputeRouteMatrix` has fine-grained options for traffic calculation, letting you make quality-latency tradeoff decisions.\n- Requests are run at a higher priority within Google's infrastructure, which results in higher availability.\n- You can specify heading (direction of travel) and side-of-road information for waypoints.\n- You can request for toll information to be returned, along with route distance and ETA.\n\nEnable the ComputeRouteMatrix method\n------------------------------------\n\nBefore you can use the `ComputeRouteMatrix` method in your code, you must\nenable it. For more information on enabling Routes Preferred API\nmethods, see [Getting Started](/maps/documentation/routes_preferred/get_started).\n| **Important:** Check your quota limits for Routes Preferred API methods. If you need to increase your quota limits, contact support by filing a case on the [Google Maps Platform support page](https://console.cloud.google.com/google/maps-apis/support) in the Google Cloud Console, or by calling the [Google Cloud Support Hotline](/maps/documentation/routes_preferred/support#support_hotline).\n\nUse the ComputeRouteMatrix method\n---------------------------------\n\nThe `ComputeRouteMatrix` method is available through the Routes Preferred\n*v1* endpoint.\n\nSee the following documentation for more detailed information:\n\ngRPC:\n\u003chttps://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1\u003e\n\nREST:\n\u003chttps://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix\u003e\n\nThe following generic steps describe how to use gRPC to call\nthe `ComputeRouteMatrix` method:\n\n1. Check out the necessary protobuffers from the googleapis repository:\n\n \u003chttps://github.com/googleapis/googleapis/tree/master/google/maps/routes\u003e\n\n Note that some build systems, such as Go, may automatically do this for you.\n2. Using your preferred language and set of build tools, generate the relevant\n protobuffer code.\n\n3. Generate your request. Two required pieces of metadata must be sent\n with the request:\n\n - *X-Goog-Api-Key* must be set to your API key.\n - *X-Goog-Fieldmask* must be set to a comma separated list of the fields\n you require from the response. For example,\n *X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status*.\n You can use the wildcard character (\\*) to denote all fields, but that is\n discouraged. Use the wildcard character to test and understand the\n API response, but explicitly list the fields you want in the field mask\n in your production code.\n\n For more information on how to construct the field mask string, see\n \u003chttps://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.proto\u003e.\n Note that disabling fields you do not need can reduce latency since\n those fields may require further computation. Your latency will stay\n stable if you specify the fields you need and new fields that require\n more computation are added later.\n4. Send your request to `routespreferred.googleapis.com:443`.You must use\n the TLS protocol.\n\nFor examples of using the `ComputeRouteMatrix` method, see\n[Computing a Route Matrix (Beta) Examples](/maps/documentation/routes_preferred/compute_matrix_examples).\n\nOne distinguishing feature of the `ComputeRouteMatrix` method is that\nerror codes can be returned either for the entire stream or for individual\nelements. For example, the stream connection returns an error if the request\nis malformed (for example, it has zero origins). However, if an error applies\nto just a few elements of the stream (for example, setting an invalid Place ID\nfor an origin), then only the elements affected by the error contain error codes.\n\nThe elements returned by the stream are not guaranteed to be returned\nin any order. Because of this, each element contains an `origin_index`\nand a `destination_index`. For the origins and destinations specified\nby the request, the route origin is equivalent to `origins[origin_index]`\nfor a given element and the route destination is is equivalent\nto `destinations[destination_index]`. These arrays are zero-indexed. It\nis important to store the origin and destination list orders.\n\nCalculating toll fees\n---------------------\n\nFor information on calculating toll fees, see\n[Calculate toll fees](/maps/documentation/routes_preferred/calculate_toll_fees).\n\nFor examples of calculating toll fees, see\n[Computing a Route Matrix Examples](/maps/documentation/routes_preferred/compute_matrix_examples#toll-fee-examples)."]]