Combiner des récapitulatifs d'itinéraire avec une recherche le long d'un itinéraire

Vous pouvez combiner des calculs de récapitulatif d'itinéraire avec une recherche le long d'un itinéraire. Dans ce cas, Text Search (nouvelle version) renvoie la durée et la distance du trajet jusqu'à chaque lieu dans la réponse, puis de chaque lieu jusqu'à la destination finale de l' itinéraire.

Pour utiliser Text Search (nouvelle version) afin de calculer le récapitulatif d'itinéraire et d'effectuer une recherche le long d'un itinéraire :

  1. Utilisez l'API Routes pour calculer un itinéraire qui renvoie une polyligne d'itinéraire dans la réponse.

  2. Utilisez le paramètre searchAlongRouteParameters.polyline.encodedPolyline pour transmettre la polyligne d'itinéraire à Text Search (nouvelle version) afin de biaiser les résultats de recherche vers l'itinéraire. La réponse contient alors des lieux qui correspondent aux critères de recherche et qui sont également situés à proximité de l'itinéraire spécifié.

  3. Incluez routingSummaries dans le masque de champ afin que la réponse inclue le tableau routingSummaries. Ce tableau contient la durée et la distance entre l'origine de l'itinéraire et chaque lieu de la réponse.

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

Par défaut, Text Search (nouvelle version) effectue la recherche sur l'ensemble de l'itinéraire :

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food",
  "searchAlongRouteParameters": {
    "polyline": {
      "encodedPolyline": "ROUTE_POLYLINE"
    }
  }
}' \
-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 : le tableau places contenant les lieux correspondants et le tableau routingSummaries contenant la durée et la distance du trajet jusqu'à chaque lieu :

{
  "places": [
    {
      "formattedAddress": "1199 El Camino Real, San Bruno, CA 94066, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Vegan Mob - Vegan BBQ and Soul Food",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "839 Kearny St, San Francisco, CA 94108, USA",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Enjoy Vegetarian",
        "languageCode": "en"
      }
    },
   
],
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "285s",
          "distanceMeters": 1616
        },
        {
          "duration": "2466s",
          "distanceMeters": 58147
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808f87f9ede375f5:0xa37171fea1a16b28!1m0!3e0"
    },
    {
      "legs": [
        {
          "duration": "696s",
          "distanceMeters": 4704
        },
        {
          "duration": "2787s",
          "distanceMeters": 58901
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808580f4cebdb06f:0xd3af09e5742234f2!1m0!3e0"
    },
   
  ]
}

Pour chaque entrée du tableau legs, Text Search (nouvelle version) renvoie une durée de trajet en deux étapes :

  • La première étape contient la durée et la distance du trajet entre l'origine et le lieu. Dans cet exemple, la durée et la distance entre l'origine et le premier lieu des résultats sont de 285 secondes et 1 616 mètres.

  • La deuxième étape contient la durée et la distance du trajet entre le lieu et la destination de l'itinéraire. Dans cet exemple, la durée et la distance sont de 2 466 secondes et 58 147 mètres.

Spécifier l'origine de l'itinéraire, le mode de transport et les modificateurs d'itinéraire

Vous pouvez modifier le calcul du récapitulatif de recherche et d'itinéraire en spécifiant l'origine de l'itinéraire, le mode de transport, les modificateurs d'itinéraire et les préférences d'itinéraire. Le mode de transport et les modificateurs d'itinéraire fonctionnent de la même manière que pour le calcul des récapitulatifs d'itinéraire sans spécifier d'itinéraire, comme indiqué dans la section Spécifier les options de transport.

Par défaut, la première étape de chaque résultat contient la distance entre l'origine définie par la polyligne et chaque lieu. Toutefois, vous pouvez remplacer cette valeur par défaut en spécifiant explicitement une origine d'itinéraire dans la requête. Si elle est spécifiée, la première étape de toutes les réponses indique les distances et la durée à partir de l'origine de l'itinéraire spécifiée, en remplaçant l'origine de la polyligne.

Dans l'exemple suivant, vous spécifiez une origine d'itinéraire comme les coordonnées de San Mateo, en Californie, vous indiquez d'éviter les péages et vous définissez le nombre de résultats sur 5 :

  curl -X POST -d '{
    "textQuery" : "Spicy Vegetarian Food",
    "maxResultCount": 5,
    "searchAlongRouteParameters": {
      "polyline": {
        "encodedPolyline": "ROUTE_POLYLINE"
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": 37.56617,
        "longitude": -122.30870
      },
      "travelMode":"DRIVE",
      "routeModifiers": {
        "avoidTolls": 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'

L'image suivante montre une carte contenant la polyligne d'itinéraire, la nouvelle origine (repère bleu clair) et les lieux dans les résultats de recherche (repères verts). Notez que tous les résultats se trouvent sur l'itinéraire, mais après San Mateo :

Résultats de recherche provenant de l'origine de la mise à jour.

Essayer

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

  1. Sélectionnez l'icône d'API api à droite 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 développer la fenêtre APIs Explorer.