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 le coordinate di latitudine e longitudine dell'origine del percorso. Questo parametro è obbligatorio per calcolare la durata e la distanza di ogni luogo nella risposta.

  2. Includi routingSummaries nella maschera di 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.

Utilizzare la ricerca di testo (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": [
    {
      object (RoutingSummary)
    }
}

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

La lunghezza dell'array routingSummaries è uguale alla lunghezza dell'array 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 routingSummaries.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
        }
      ],
      "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"
    },
   
  ]
}

Da questo esempio, puoi vedere che la durata e la distanza dall'origine del percorso al primo luogo nei risultati sono 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 del routing. Ad esempio, imposti locationRestriction sul centro di Sydney per orientare i risultati di ricerca in base a quel cerchio. Tuttavia, imposti l'origine del percorso sulle coordinate della tua casa, ovvero su una posizione diversa all'interno del cerchio di ricerca. La richiesta quindi orienta i risultati di ricerca verso il cerchio e calcola i riepiloghi dei percorsi in base alla posizione della tua casa.

Specificare le opzioni di viaggio

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

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

  • Utilizza la proprietà routingParameters.routingPreference per impostare l'opzione di preferenza di routing su TRAFFIC_UNAWARE (predefinito), TRAFFIC_AWARE o TRAFFIC_AWARE_OPTIMAL. Ogni opzione presenta livelli diversi di qualità e latenza dei dati. Per saperne di più, consulta Specificare come e se includere i dati sul traffico.

    La proprietà routingParameters.routingPreference influisce sulle indicazioni stradali contenute nel campo directionsUri Anteprima (pre-GA) perché Google Maps mostra le opzioni di traffico quando apre il link.

  • 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.

Nell'esempio seguente, specifichi la modalità di viaggio come DRIVE e di evitare le 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'