Obtenir une matrice de routage

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 ComputeRouteMatrix en flux continu (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 en partant de chaque point de départ et en terminant par chaque destination.

Obtenir une matrice d'itinéraire en transports en commun

Vous pouvez également calculer une matrice d'itinéraires en transports en commun. Vous trouverez un exemple dans la section 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 ID de lieu ou d'adresses, et pour les éléments. Les éléments correspondent aux itinéraires entre chaque point de départ et destination dans une matrice d'itinéraires. Le nombre d'éléments correspond donc au nombre de points de départ fois le nombre de destinations. Par exemple, si vous avez 10 points de départ et 10 destinations, vous disposez de 100 éléments:

  • Le nombre d'éléments ne peut pas dépasser 625 pour les routes qui ne sont pas des routes 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 sur TRAFFIC_AWARE_OPTIMAL, consultez la section Spécifier si et comment inclure les 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.

Erreurs de réponse

L'une des fonctionnalités des méthodes Compute Route Matrix est que les erreurs peuvent être renvoyées soit pour l'intégralité de la réponse, soit pour des éléments de réponse individuels. Par exemple, la réponse entière contient une erreur si le format de la requête est incorrect (par exemple, si elle n'a aucune origine).

Toutefois, si une erreur s'applique à un sous-ensemble d'éléments dans la réponse (par exemple, 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 des flux gRPC

La méthode gRPC ComputeRouteMatrix utilise une liste de points de départ et de destinations, et renvoie un flux contenant des informations sur le routage pour chaque combinaison de points 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 aient été calculées avant de pouvoir commencer à les traiter.

Il n'est pas garanti que les éléments renvoyés par le flux soient renvoyés dans n'importe quel ordre. 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 à 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.

Exemples de calcul d'une matrice de routage

Utilisez la méthode computeRouteMatrix dans une requête HTTP pour calculer une matrice de routage.

Exemple HTTP

L'exemple suivant présente une requête HTTP computeRouteMatrix. Dans cet exemple:

  • Spécifiez un tableau comportant deux points de cheminement de départ et deux points de cheminement de destination. Cette méthode calcule un itinéraire de chaque point de départ à chaque destination, de sorte que la réponse contienne quatre itinéraires.

    Dans le tableau, l'indice du premier élément est 0, le deuxième élément est l'indice 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 la réponse ComputeRoutesResponse (gRPC) à renvoyer. Dans cet exemple, configurez la requête afin qu'elle renvoie originIndex, destinationIndex, duration, distanceMeters, status et condition pour chaque route. Pour en savoir plus, consultez la section 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 route dans la réponse à l'aide des champs de réponse originIndex et destinationIndex. Par exemple, une valeur originIndex de 1 dans la réponse correspond à un itinéraire calculé à partir du point de cheminement de l'index 1 du tableau origins de 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 section Exemple de requête gRPC. L'exemple Java présenté sur cette page appelle à la fois Compute Routes et Compute Route Matrix.