Parametri di richiesta

Questo documento descrive i parametri delle richieste per l'API Places Aggregate e include approfondimenti e best practice per l'utilizzo di questo servizio.

L'API Places Aggregate consente di eseguire diverse funzioni chiave:

  • Conteggiare i luoghi: determina il numero di luoghi che corrispondono a criteri specifici , come tipo di località, stato di attività, livello dei prezzi e valutazioni.
  • Recuperare i dettagli dei luoghi: ottieni i nomi dei luoghi che soddisfano i filtri specificati, quindi recupera informazioni più dettagliate utilizzando l' API Places.
  • Filtri flessibili: applica filtri completi per ottenere aggregazioni precise I filtri disponibili includono i seguenti:
    • Area geografica (cerchio, regione o poligono personalizzato)
    • Tipi di luoghi
    • Stato di attività
    • Livelli dei prezzi
    • Intervalli di valutazione

Parametri obbligatori

Questa sezione illustra i parametri obbligatori quando si invia una richiesta all'API Places Aggregate. Ogni richiesta deve fornire quanto segue:

  • Un tipo di approfondimento.
  • Un filtro di località e un filtro di tipo.

Tipo di insight

Specifica il tipo di approfondimento che vuoi calcolare. Sono supportati i seguenti tipi di approfondimento:

  • INSIGHT_COUNT: restituisce il numero di luoghi che corrispondono ai criteri di filtro.
  • INSIGHT_PLACES: restituisce gli ID dei luoghi che corrispondono ai criteri di filtro.

Filtri

Specifica i criteri per filtrare i luoghi. Come minimo, devi specificare LocationFilter e TypeFilter.

Filtro di località

Un filtro di località può avere uno dei seguenti tipi:

  • circle: definisce un'area come un cerchio con un centro e un raggio.
  • region: definisce un'area come una regione.
  • customArea: definisce un'area come un poligono personalizzato.
Cerchio

Se selezioni l'area geografica come cerchio, devi fornire un center e un radius. Il center può essere una latitudine e una longitudine oppure l'ID luogo del centro del cerchio. Questo metodo consente un filtraggio preciso e accurato in base alla regione circolare definita.

  • center:
    • latLng: latitudine e longitudine del centro del cerchio. Le latitudini devono essere un numero compreso tra -90 e 90, inclusi. La longitudine deve essere un numero compreso tra -180 e 180, inclusi.
    • place: ID luogo del centro del cerchio. Tieni presente che sono supportati solo i luoghi puntuali. Questa stringa deve iniziare con il prefisso places/.
  • radius: raggio del cerchio in metri. Questo numero deve essere positivo.
Regione

Definisci l'area come una regione passando un ID luogo al parametro place. L'ID luogo rappresenta un'area geografica (ad esempio un'area rappresentabile da un poligono). Ad esempio, l'ID luogo di Tampa, Florida, è places/ChIJ4dG5s4K3wogRY7SWr4kTX6c. Tieni presente che non tutti gli ID luogo hanno una geometria ben definita e in questi casi l'API Places Aggregate restituisce un codice di errore 400 con un messaggio che indica che la regione non è supportata. Inoltre, per le regioni geografiche complesse, le ottimizzazioni dell'elaborazione interna potrebbero portare a una leggera sovra-approssimazione dell'area (fino al 2-3%) che rappresenta la regione.

Per determinare se un ID luogo rappresenta un tipo di luogo non supportato, passa l'ID luogo in una richiesta dell'API Geocoding. La risposta include l'array type che elenca i tipi di luoghi associati all'ID luogo, ad esempio locality, neighborhood o country. Un luogo verrà rifiutato per il filtraggio delle regioni se uno qualsiasi dei suoi tipi corrisponde a questo elenco.

I tipi di luoghi non supportati includono:

  • establishment: in genere indica un luogo che non è ancora stato classificato.
  • intersection: indica un incrocio principale, di solito di due strade principali.
  • subpremise: indica un'entità indirizzabile al di sotto del livello della sede, ad esempio un appartamento, un'unità o una suite.
Area personalizzata

Definisce l'area di un poligono personalizzato utilizzando le coordinate di latitudine e longitudine.

Puoi visitare https://geojson.io/ per disegnare un poligono personalizzato e inserire le coordinate nella richiesta. Un poligono deve avere almeno 4 coordinate, dove la prima e l'ultima coordinate sono identiche. Almeno 3 delle coordinate fornite devono essere univoche.

Le coordinate identiche consecutive verranno trattate come una singola coordinata. Tuttavia, le coordinate duplicate non consecutive (diverse dalle coordinate identiche richieste prima e dopo) genereranno un errore.

Inoltre, non è consentito che i bordi non adiacenti si intersechino e non sono consentiti bordi di lunghezza pari a 180 gradi (ovvero i vertici adiacenti non possono essere antipodali).

Ad esempio:

"coordinates":[
   {
      "latitude":37.776,
      "longitude":-122.666
   },
   {
      "latitude":37.130,
      "longitude":-121.898
   },
   {
      "latitude":37.326,
      "longitude":-121.598
   },
   {
      "latitude":37.912,
      "longitude":-122.247
   },
   {
      "latitude":37.776,
      "longitude":-122.666
   }
]

Filtro di tipo

Specifica i tipi di luoghi da includere o escludere. Per un elenco dei tipi di luoghi primari e secondari supportati dall'API Places Aggregate, consulta la Tabella A in Tipi di luoghi per l'API Places (New). Devi specificare almeno un tipo includedTypes o includedPrimaryTypes.

  • includedTypes: elenco dei tipi di luoghi inclusi.
  • excludedTypes: elenco dei tipi di luoghi esclusi.
  • includedPrimaryTypes: elenco dei tipi di luoghi primari inclusi.
  • excludedPrimaryTypes: elenco dei tipi di luoghi primari esclusi.

Per saperne di più su come funzionano i filtri di tipo e i tipi di luoghi, consulta la sezione su altri filtri di tipo.

Parametri facoltativi

Questi filtri sono facoltativi:

  • operatingStatus: specifica gli stati dei luoghi da includere o escludere. Per impostazione predefinita, il filtro viene applicato a operatingStatus: OPERATING_STATUS_OPERATIONAL (un valore specifico).
  • priceLevels: specifica i livelli dei prezzi dei luoghi da includere. Per impostazione predefinita, non viene applicato alcun filtro del livello dei prezzi e vengono restituiti tutti i luoghi (inclusi quelli senza informazioni sul livello dei prezzi).
  • ratingFilter: specifica l'intervallo di valutazione dei luoghi. Per impostazione predefinita, non viene applicato alcun filtro (tutte le valutazioni sono incluse nei risultati).

Stato di attività

Con il filtro operatingStatus, puoi filtrare in base allo stato di attività ad esempio OPERATIONAL o TEMPORARILY_CLOSED. Il comportamento del filtro operatingStatus è il seguente:

  • Se non sono stati forniti filtri, nei risultati vengono inclusi solo i luoghi con uno stato di attività OPERATING_STATUS_OPERATIONAL.
  • Se vengono forniti uno o più filtri, devi specificare valori di stato di attività validi (OPERATING_STATUS_OPERATIONAL, OPERATING_STATUS_PERMANENTLY_CLOSED o OPERATING_STATUS_TEMPORARILY_CLOSED).

Livello dei prezzi

Con il filtro priceLevels, puoi filtrare i luoghi in base al loro Livello dei prezzi. I valori validi per il livello dei prezzi sono: PRICE_LEVEL_FREE, PRICE_LEVEL_INEXPENSIVE, PRICE_LEVEL_MODERATE, PRICE_LEVEL_EXPENSIVE e PRICE_LEVEL_VERY_EXPENSIVE.

Il comportamento del filtro priceLevels è il seguente:

  • Se non vengono forniti filtri: vengono restituiti tutti i luoghi, indipendentemente dal fatto che abbiano un livello dei prezzi assegnato. Sono inclusi i luoghi senza informazioni sul livello dei prezzi, che potrebbero non essere restituiti quando si filtra in base a livelli dei prezzi specifici.
  • Se vengono forniti uno o più filtri: vengono restituiti solo i luoghi che corrispondono ai livelli dei prezzi specificati.

Filtro valutazione

Filtra i luoghi in base alle valutazioni medie degli utenti. Entrambi i campi sono facoltativi, quindi se vengono omessi, per impostazione predefinita verranno inclusi anche i luoghi che non hanno una valutazione.

  • minRating: valutazione media minima degli utenti (tra 1,0 e 5,0).
  • maxRating: valutazione media massima degli utenti (tra 1,0 e 5,0).

Inoltre, il valore minRating deve essere sempre minore o uguale al valore maxRating. Se minRating è maggiore di maxRating, viene restituito un errore INVALID_ARGUMENT.