Calculer le résumé du routage

Pour utiliser Text Search (New) ou Nearby Search (New) afin de calculer la durée et la distance du trajet jusqu'à chaque lieu de la réponse :

  1. Transmettez le paramètre routingParameters.origin dans la requête pour spécifier les coordonnées de latitude et de longitude du point de départ de l'itinéraire. Ce paramètre est obligatoire pour calculer la durée et la distance jusqu'à chaque lieu dans la réponse.

  2. Incluez routingSummaries dans le masque de champ pour que la réponse inclue le tableau routingSummaries. Ce tableau contient la durée et la distance entre le point de départ de l'itinéraire et chaque lieu de la réponse.

APIs Explorer vous permet d'effectuer des requêtes en direct afin de vous familiariser avec l'API et ses options :

Dans la requête suivante, vous calculez la durée et la distance du trajet jusqu'à chaque lieu dans la réponse Text Search (New) :

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

La réponse contient deux tableaux JSON : le tableau places contient les lieux correspondants, et le tableau routingSummaries contient la durée et la distance à parcourir pour chaque lieu :

{
  "places": [
    {
      object (Place)
    }
  ]
  "routingSummaries": [
    {
      object (RoutingSummary)
    }
}

Chaque élément du tableau routingSummaries se trouve au même emplacement que le lieu correspondant dans le tableau places. Autrement dit, l'élément à l'index routingSummaries[0] correspond au lieu à l'index places[0].

La longueur du tableau de routingSummaries est identique à celle du tableau de places. Si le routingSummary d'un lieu n'est pas disponible, l'entrée du tableau est vide.

Comme cet exemple calcule la durée et la distance entre le point de départ de l'itinéraire et chaque lieu, le champ routingSummaries.legs de la réponse contient un seul objet Leg qui contient les valeurs duration et distanceMeters entre le point de départ de l'itinéraire et le lieu.

{
  "places": [
    {
      "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Gözleme King Sydney",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    …
  ]
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "597s",
          "distanceMeters": 2607
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0"
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0"
    },
   …
  ]
}

Dans cet exemple, vous pouvez voir que la durée et la distance entre l'origine de l'itinéraire et le premier lieu dans les résultats sont de 597 secondes et 2 607 mètres.

Dans cet exemple, vous calculez la durée et la distance du trajet jusqu'à chaque lieu dans la réponse Nearby Search. Cet exemple recherche des restaurants à Sydney, en Australie, et définit la restriction d'emplacement et le point de départ de l'itinéraire sur les mêmes coordonnées de latitude et de longitude :

  curl -X POST -d '{
    "includedTypes": ["restaurant"],
    "maxResultCount": 10,
    "locationRestriction": {
      "circle": {
        "center": {
          "latitude": -33.8688,
          "longitude": 151.1957362},
        "radius": 500.0
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": -33.8688,
        "longitude": 151.1957362
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \
  -H "X-Goog-FieldMask: places.displayName,routingSummaries" \
  https://places.googleapis.com/v1/places:searchNearby

Vous n'avez pas besoin d'utiliser les mêmes coordonnées pour le locationRestriction et pour le point de départ de l'itinéraire. Par exemple, vous définissez locationRestriction sur le point central de Sydney pour biaiser les résultats de recherche vers ce cercle. Mais vous définissez ensuite l'origine de l'itinéraire sur les coordonnées de votre maison, c'est-à-dire sur un autre emplacement dans le cercle de recherche. La requête oriente ensuite les résultats de recherche vers le cercle et calcule les récapitulatifs d'itinéraires en fonction de l'emplacement de votre maison.

Spécifier les options de voyage

Par défaut, les calculs de durée et de distance sont effectués pour une voiture. Toutefois, vous pouvez contrôler le type de véhicule, ainsi que d'autres options, dans la recherche.

  • Utilisez le paramètre routingParameters.travelMode pour définir le mode de transport sur DRIVE, BICYCLE, WALK ou TWO_WHEELER. Pour en savoir plus sur ces options, consultez Types de véhicules disponibles pour les itinéraires.

  • Utilisez la propriété routingParameters.routingPreference pour définir l'option de préférence de routage sur TRAFFIC_UNAWARE (par défaut), TRAFFIC_AWARE ou TRAFFIC_AWARE_OPTIMAL. Chaque option présente des niveaux de qualité des données et de latence différents. Pour en savoir plus, consultez Spécifier comment et si vous souhaitez inclure des données de trafic.

    La propriété routingParameters.routingPreference n'affecte pas l'itinéraire contenu dans le champ directionsUri en version Preview (pré-DG), car Google Maps affiche les options de trafic lorsqu'il ouvre le lien.

  • Utilisez la propriété routingParameters.routeModifiers pour spécifier avoidTolls, avoidHighways, avoidFerries et avoidIndoor. Pour en savoir plus sur ces options, consultez Spécifier les caractéristiques d'itinéraire à éviter.

Dans l'exemple suivant, vous spécifiez le mode de transport DRIVE et vous évitez les autoroutes :

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    },
    "travelMode":"DRIVE",
    "routeModifiers": {
      "avoidHighways": true
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

Essayer

APIs Explorer vous permet d'effectuer des exemples de requêtes afin de vous familiariser avec l'API et ses options.

  1. Sélectionnez l'icône API api sur le côté droit de la page.

  2. Vous pouvez également modifier les paramètres de la requête.

  3. Sélectionnez le bouton Exécuter. Dans la boîte de dialogue, choisissez le compte que vous souhaitez utiliser pour effectuer la requête.

  4. Dans le panneau APIs Explorer, sélectionnez l'icône Plein écran fullscreen pour agrandir la fenêtre APIs Explorer.