Calcolare il riepilogo del routing

Per utilizzare Ricerca testuale (nuova) o Nearby Search (nuova) per calcolare la durata e la distanza del viaggio verso ogni 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 da 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.

L'Explorer API ti consente di effettuare richieste in tempo reale per familiarizzare con l'API e le relative opzioni:

Nella seguente richiesta, calcoli la durata e la distanza del viaggio per ogni luogo nella risposta di 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 contenente la durata e la distanza da percorrere per raggiungere ogni luogo:

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

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

La lunghezza dell'array di routingSummaries è uguale a quella dell'array di places. Nel caso in cui routingSummary per un luogo non sia 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 e la distanza del viaggio per ogni luogo nella risposta di Nearby Search. Questo esempio cerca ristoranti a Sydney, in Australia, e imposta la limitazione della località e l'origine del percorso sulla stessa coordinata 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 devi utilizzare le stesse coordinate per locationRestriction e per l'origine dell'itinerario. Ad esempio, imposti locationRestriction al centro di Sydney per orientare i risultati di ricerca verso quel cerchio. ma poi imposti l'origine dell'itinerario sulle coordinate della tua casa, ovvero su una posizione diversa all'interno del cerchio di ricerca. La richiesta quindi distorce i risultati di ricerca verso il cerchio e calcola i riepiloghi degli itinerari 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, nonché altre opzioni, nella ricerca.

  • Utilizza il parametro routingParameters.travelMode per impostare la modalità di trasporto su DRIVE, BICYCLE, WALK o TWO_WHEELER. Per saperne di più su queste opzioni, consulta Tipi di veicoli disponibili per i percorsi.

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

    La proprietà routingParameters.routingPreference influisce sulle indicazioni contenute nel campo Anteprima (pre-GA) directionsUri 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, vedi Specificare le caratteristiche del percorso da evitare.

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

Prova

L'Explorer API ti consente di effettuare richieste di esempio per familiarizzare con l'API e le relative opzioni.

  1. Seleziona l'icona API api sul lato destro della pagina.

  2. Se vuoi, modifica i parametri di richiesta.

  3. Seleziona il pulsante Esegui. Nella finestra di dialogo, scegli l'account che vuoi utilizzare per effettuare la richiesta.

  4. Nel riquadro Explorer API, seleziona l'icona Schermo intero fullscreen per espandere la finestra di Explorer API.