Combinare i riepiloghi dei percorsi con la ricerca lungo il percorso

Puoi combinare i calcoli del riepilogo del percorso con la ricerca lungo un percorso. In questo caso, la ricerca testuale (nuova) restituisce la durata e la distanza del viaggio a ogni posto nella risposta e poi da ogni luogo alla destinazione finale percorso.

Per utilizzare la ricerca di testo (nuova) per calcolare il riepilogo del percorso e la ricerca lungo un percorso:

  1. Utilizzare l'API Routes per calcolare una route che restituisce una polilinea della route nella risposta.

  2. Utilizza il parametro searchAlongRouteParameters.polyline.encodedPolyline per trasmettere il polilinea del percorso alla ricerca di testo (nuova) per orientare i risultati di ricerca in base al percorso. La risposta contiene quindi i luoghi che corrispondono ai criteri di ricerca e si trovano anche vicino al percorso specificato.

  3. Includi routingSummaries nella maschera del campo in modo che la risposta includa l'array routingSummaries. Questo array contiene la durata e la distanza dall'origine del percorso a ogni luogo nella risposta.

Per impostazione predefinita, Ricerca testuale (nuova) esegue la ricerca lungo l'intero percorso:

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 risposta contiene due array: l'array places contenente i luoghi corrispondenti e l'array routingSummaries contenente la durata e la distanza da percorrere per raggiungere ogni luogo:

{
  "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
        }
      ]
    },
   …
  ]
}

Per ogni voce nell'array legs, la ricerca testuale (Nuova) restituisce una corsa a due tratti. volta:

  • La prima tratta contiene la durata del viaggio e la distanza dall'origine al luogo. In questo esempio, la durata e la distanza dall'origine il primo posto nei risultati è 285 secondi e 1616 metri.

  • La seconda tappa contiene la durata del viaggio e la distanza dal luogo a la destinazione del percorso. In questo esempio, la durata e la distanza sono 2466 secondi e 58147 metri.

Specifica l'origine del percorso, la modalità di viaggio e i modificatori di percorso

Puoi modificare il calcolo del riepilogo della ricerca e del calcolo del percorso specificando l'origine del percorso, la modalità di viaggio, i modificatori del percorso e le preferenze di calcolo del percorso. I modi di viaggio e i modificatori di percorso funzionano come per il calcolo dei riepiloghi di routing senza specificare un percorso, come mostrato in Specificare le opzioni di viaggio.

Per impostazione predefinita, la prima parte di ogni risultato contiene la distanza dall'origine definita dalla polilinea a ogni luogo. Tuttavia, puoi sostituire questa impostazione predefinita che specifichi esplicitamente un'origine di routing nella richiesta. Se specificato, il primo il tratto di tutte le risposte specifica le distanze e la durata dal di routing, sostituendo l'origine della polilinea.

Nel prossimo esempio, specifichi un'origine di routing come le coordinate di San Matteo, CA, specifica di evitare i pedaggi e imposta il numero di risultati su 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'immagine seguente mostra una mappa contenente il polilinea del percorso, la nuova origine (segnaposto azzurro) e i luoghi nei risultati di ricerca (segnaposto verdi). Nota come tutti i risultati sono lungo il percorso ma dopo San Mateo:

Risultati di ricerca provenienti dall'origine dell'aggiornamento.