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 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 :

  1. 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.

  2. Générez le code protobuffer approprié en utilisant votre langage et votre ensemble d'outils de compilation préférés.

  3. 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.

  4. 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.