L'API Routes est actuellement en version bêta (avant la mise à disposition générale). Il est possible que les produits et fonctionnalités pré-DG présentent une compatibilité limitée, et que les modifications apportées aux produits et fonctionnalités pré-DG ne soient pas compatibles avec d'autres versions pré-DG. Les Offres de pré-DG sont couvertes par les Conditions spécifiques au service Google Maps Platform. Pour en savoir plus, consultez les descriptions des étapes de lancement.

Calculer une matrice de routes

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Utilisez l'API Routes pour calculer la distance et la durée d'une route pour plusieurs points de départ et destinations en appelant la méthode computeRouteMatrix (REST) ou la méthode ComputeRouteMatrix (gRPC) en streaming.

À partir d'une liste de paires point de départ-destination, les méthodes calculent la distance et la durée d'un itinéraire entre chaque point de départ et chaque destination.

Limites de requêtes

Les méthodes de la matrice de route de calcul appliquent les limites de requêtes suivantes:

  • Le nombre d'éléments (nombre d'origines × nombre de destinations) ne peut pas dépasser 625.

  • 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 Configurer la qualité et la latence.

  • Le nombre maximal de points de cheminement (origines et destinations) que vous pouvez spécifier à l'aide d'un ID de lieu est de 50.

Erreurs de réponse

L'une des caractéristiques des méthodes de calcul de la route Compute est que les erreurs peuvent être renvoyées pour l'intégralité de la réponse ou pour des éléments de réponse individuels. Par exemple, la réponse entière contient une erreur si la requête est incorrecte (par exemple, si elle n'a aucune origine).

Toutefois, si une erreur s'applique à un sous-ensemble d'éléments de la réponse (par exemple, une route ne peut pas être calculée pour une combinaison point de départ-destination), seuls les éléments affectés par l'erreur renvoient un code d'erreur.

Résultats du flux

La méthode gRPC ComputeRouteMatrix prend une liste de points de départ et de destinations et renvoie un flux contenant des informations de routage pour chaque combinaison de points de départ et de destination. Les résultats étant renvoyés sous forme de flux, vous n'avez pas à attendre que toutes les combinaisons de routes possibles soient calculées avant de pouvoir commencer à traiter les résultats.

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 de destination spécifiés dans la requête, l'origine de la route est équivalente à 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 associées aux listes d'origine et de destination.

Calculer des exemples de routes Matrix

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

Exemple HTTP

L'exemple suivant montre une requête HTTP computeRouteMatrix. Dans cet exemple, vous allez:

  • Spécifiez un tableau de deux points de cheminement de départ et de destination La méthode calcule une route de chaque point de départ vers chaque destination, de sorte que la réponse contient quatre routes.

    Dans le tableau, le premier élément est à l'index 0, le deuxième élément à l'index 1, et ainsi de suite.

  • Incluez un masque de champ de réponse pour spécifier les champs de response (REST) ou de ComputeRoutesResponse (gRPC) à renvoyer. Dans cet exemple, configurez la requête pour qu'elle renvoie originIndex, destinationIndex, duration, distanceMeters, status et condition pour chaque route. Pour en savoir plus, consultez 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 routes 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, un originIndex de 1 dans la réponse correspond à un itinéraire calculé à partir du point de cheminement à 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 requêtes gRPC. L'exemple Java de cette page appelle à la fois les routes et la matrice.