Combiner les récapitulatifs de calcul d'itinéraires avec la recherche sur le trajet

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

Pour utiliser Text Search (nouvelle version) pour calculer le résumé du calcul d'itinéraire et effectuer une recherche sur un itinéraire :

  1. Utiliser 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) pour pondérer les résultats de recherche la route. La réponse contient alors les lieux correspondant aux critères de recherche et situés à proximité du trajet spécifié.

  3. Incluez routingSummaries dans le masque de champ afin que la réponse comprenne le tableau routingSummaries. Ce tableau contient la durée et la distance entre le point de départ du calcul d'itinéraire et chaque lieu de la réponse.

Par défaut, la recherche textuelle (nouvelle) 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 valeurs lieux, et le tableau routingSummaries contenant la durée et la distance jusqu'à se rendre dans chaque lieu:

{
  "places": [
    {
      "formattedAddress": "1477 Plymouth St suite c, Mountain View, CA 94043, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Zareen's",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "2464 W El Camino Real C, Mountain View, CA 94040, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Veggie Garden",
        "languageCode": "en"
      }
    },
   …
],
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "285s",
          "distanceMeters": 1616
        },
        {
          "duration": "2466s",
          "distanceMeters": 58147
        }
      ]
    },
    {
      "legs": [
        {
          "duration": "696s",
          "distanceMeters": 4704
        },
        {
          "duration": "2787s",
          "distanceMeters": 58901
        }
      ]
    },
   …
  ]
}

Pour chaque entrée du tableau legs, la recherche dans le texte (nouvelle) renvoie un temps de trajet en deux étapes :

  • La première section indique la durée du trajet et la distance entre le point de départ et le lieu. Dans cet exemple, la durée et la distance entre l'origine et la première place dans les résultats sont de 285 secondes et de 1 616 mètres.

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

Spécifier l'origine du calcul d'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 de parcours fonctionnent de la même manière que pour calculer des récapitulatifs de calcul d'itinéraires sans spécifier de parcours, comme indiqué dans la section Spécifier des options de déplacement.

Par défaut, la première section de chaque résultat contient la distance par rapport au point de départ. défini par la polyligne à chaque lieu. Toutefois, vous pouvez remplacer cette valeur par défaut en spécifiant explicitement une origine de routage dans la requête. Le cas échéant, la première étape de toutes les réponses spécifie les distances et la durée à partir de l'origine de calcul d'itinéraire spécifiée, en remplaçant l'origine de la polyligne.

Dans l'exemple suivant, vous spécifiez les coordonnées de San Mateo (Californie) comme point de départ, indiquez d'éviter les péages et définissez le nombre de résultats sur cinq :

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 de l'itinéraire, le nouveau point de départ (épingle bleu clair) et les adresses dans les résultats de recherche (repères verts). Notez que tous les résultats se trouvent le long du trajet, mais après San Mateo :

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