Vous pouvez calculer la distance et la durée d'un itinéraire pour plusieurs points de départ et destinations en utilisant 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 qui commence à chaque point de départ et se termine à chaque destination. Chaque élément du flux correspond aux informations d'une seule route.
La méthode ComputeRouteMatrix
présente plusieurs avantages par rapport au service Distance Matrix:
- Le streaming permet de renvoyer les éléments avant le calcul de la matrice entière, ce qui réduit la latence.
ComputeRouteMatrix
propose des options de calcul du trafic ultraprécises, ce qui vous permet de prendre des décisions en termes de latence en termes de qualité.- 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 plus grande disponibilité.
- Vous pouvez spécifier l'orientation (sens du trajet) et les informations sur le côté de la route pour les points de cheminement.
- Vous pouvez demander que les informations sur les péages soient renvoyées, ainsi que la distance de l'itinéraire 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 le guide de démarrage.
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:
Les étapes génériques suivantes décrivent comment utiliser gRPC pour appeler la méthode ComputeRouteMatrix
:
Consultez les protobuffers nécessaires à partir 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 le faire automatiquement pour vous.
À l'aide du langage de votre choix et de l'ensemble d'outils de compilation, générez le code protobuffer approprié.
Générez votre requête. Deux métadonnées obligatoires doivent être envoyées avec la requête:
- X-Goog-Api-Key doit être défini sur votre clé API.
X-Goog-Fieldmask doit être défini sur une liste des champs dont vous avez besoin de la réponse, séparés par une virgule. 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 répertoriez explicitement les champs que vous souhaitez utiliser dans le masque de champ de votre code de production.
Pour en savoir plus sur la création de la chaîne de masque de champ, consultez la page 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. La latence restera stable si vous spécifiez les champs dont vous avez besoin et que de nouveaux champs nécessitant davantage de calculs sont ajoutés ultérieurement.
Envoyez votre requête à
routespreferred.googleapis.com:443
.Vous devez utiliser le protocole TLS.
Pour obtenir des exemples d'utilisation de la méthode ComputeRouteMatrix
, consultez la page Calculer une matrice de routage (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 incorrecte (par exemple, si elle n'a aucune origine). Toutefois, si une erreur ne s'applique qu'à quelques éléments du flux (par exemple, si vous définissez un ID de lieu non valide pour un point de départ), 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 n'importe quel ordre. Pour cette raison, chaque élément contient une origin_index
et une 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é, tandis que la destination de l'itinéraire est équivalente à destinations[destination_index]
. Ces tableaux sont indexés par zéro. Il est important de stocker les commandes des listes de départ et de destination.
Calcul des frais de péage
Pour en savoir plus sur le calcul des frais de péage, consultez la section Calculer les frais de péage.
Pour obtenir des exemples de calcul des frais de péage, consultez la section Calculer des exemples de matrice d'itinéraires.