Calcolare il riepilogo del calcolo del percorso

Per utilizzare la ricerca di testo (novità) o la ricerca nelle vicinanze (novità) per calcolare la durata del viaggio e la distanza da ciascun luogo nella risposta:

  1. Passa il parametro routingParameters.origin nella richiesta per specificare coordinate di latitudine e longitudine del luogo di partenza del percorso. Questo parametro è necessaria per calcolare la durata e la distanza da ogni luogo nella la risposta corretta.

  2. 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 di routing a ogni luogo nella risposta.

Utilizza la ricerca testuale (novità)

Nella richiesta seguente, calcoli la durata del viaggio e la distanza da ogni luogo nella risposta della ricerca di testo (nuova):

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

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

Ogni elemento dell'array routingSummaries si trova nella posizione dell'array corrispondente a quella dell'array places. In altre parole, l'elemento routingSummaries[0] corrisponde al luogo in places[0].

La lunghezza dell'array di routingSummaries è uguale alla lunghezza dell'array di places. Se routingSummary per un luogo non è disponibile, la voce dell'array è vuota.

Poiché questo esempio calcola la durata e la distanza dall'origine del percorso a ogni luogo, il campo legs nella risposta contiene un singolo oggetto Leg che contiene duration e distanceMeters dall'origine del percorso al luogo:

{
  "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
        }
      ]
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ]
    },
   …
  ]
}

Da questo esempio puoi vedere che la durata e la distanza dal percorso al primo posto nei risultati è 597 secondi e 2607 metri.

In questo esempio, calcoli la durata del viaggio e la distanza da ogni luogo nella risposta della Ricerca nelle vicinanze. Questo esempio cerca ristoranti a Sydney, Australia e imposta la limitazione della località e l'origine del percorso sulle stesse coordinate di latitudine e longitudine:

  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

Non è necessario utilizzare le stesse coordinate per locationRestriction e per l'origine di routing. Ad esempio, imposti locationRestriction sul centro di Sydney per orientare i risultati di ricerca in base a quel cerchio. ma poi si imposta il punto di partenza delle corse alle coordinate di casa tua, il che significa che è una località diversa all'interno del cerchio di ricerca. La richiesta differenziazione dei risultati di ricerca cerchiata e calcola i riepiloghi di percorso in base alla posizione di una casa.

Specificare le opzioni di viaggio

Per impostazione predefinita, i calcoli relativi a durata e distanza si riferiscono a un'auto. Tuttavia, puoi controllare il tipo di veicolo, oltre ad altre opzioni, nella ricerca.

  • Usa il parametro routingParameters.travelMode per impostare la modalità di trasporto per DRIVE, BICYCLE, WALK o TWO_WHEELER. Per maggiori informazioni informazioni su queste opzioni, consulta la sezione Tipi di veicoli disponibili per route.

  • Utilizza la proprietà routingParameters.routingPreference per impostare il routing l'opzione di preferenza su TRAFFIC_UNAWARE (valore predefinito), TRAFFIC_AWARE o TRAFFIC_AWARE_OPTIMAL. Ogni opzione presenta livelli diversi di qualità e latenza dei dati. Per ulteriori informazioni, consulta Specificare come e se includere il traffico i tuoi dati.
  • Utilizza la proprietà routingParameters.routeModifiers per specificare avoidTolls, avoidHighways, avoidFerries e avoidIndoor. Per ulteriori informazioni su queste opzioni, consulta la sezione Specificare elementi del percorso da evitare.

Nel prossimo esempio, specifichi la modalità di viaggio come DRIVE e per evitare autostrade:

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'