Calculer une matrice de routes

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 à partir de chaque point de départ et jusqu'à 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 le calcul de l'intégralité de la matrice, ce qui réduit la latence.
  • ComputeRouteMatrix propose des options précises pour le calcul du trafic, qui vous permettent de prendre des décisions de compromission en termes de latence qualité.
  • Les requêtes sont exécutées avec un niveau de priorité plus élevé dans l'infrastructure de Google, ce qui améliore la disponibilité.
  • Vous pouvez spécifier des informations sur l'orientation (direction du trajet) et le côté de route pour les points de cheminement.
  • Vous pouvez demander l'affichage des informations sur les péages, de la distance de l'itinéraire et de l'heure d'arrivée prévue.

Activer la méthode ComputeRouteMatrix

Pour pouvoir utiliser la méthode ComputeRouteMatrix dans votre code, vous devez l'activer. Pour en savoir plus sur l'activation des méthodes 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 v1 de Routes Preferred.

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 appeler la méthode ComputeRouteMatrix à l'aide de gRPC:

  1. Vérifiez 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 procéder automatiquement à cette opération.

  2. À l'aide du langage de votre choix et de l'ensemble d'outils de compilation, générez le code de tampon de protocole approprié.

  3. 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 dans 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 cette approche est déconseillée. 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 afficher 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 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. De nouveaux champs nécessitant davantage de calculs seront ajoutés ultérieurement.

  4. 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 section Calculer des exemples de matrices de routes (bêta).

L'une des caractéristiques distinctives de la méthode ComputeRouteMatrix est que des codes d'erreur peuvent être renvoyés pour l'ensemble du flux ou pour des éléments individuels. Par exemple, la connexion par flux renvoie une erreur si le format de la requête est incorrect (par exemple, si elle n'a aucune origine). Toutefois, si une erreur ne s'applique qu'à quelques éléments du flux (par exemple, définir un ID de lieu non valide pour une origine), seuls les éléments affecté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. De ce fait, chaque élément 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 les commandes des listes d'origine 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.