Method: computeInsights

Questo metodo ti consente di recuperare informazioni sulle aree utilizzando una serie di filtri, ad esempio area, tipo di luogo, stato di funzionamento, livello di prezzo e valutazioni. Al momento sono supportati gli approfondimenti "conteggio" e "luoghi". Con gli approfondimenti "conteggio" puoi rispondere a domande come "Quanti ristoranti sono operativi in California, sono economici e hanno una valutazione media di almeno 4 stelle" (per maggiori dettagli, consulta l'enum insight). Con gli approfondimenti "Luoghi", puoi determinare quali luoghi corrispondono al filtro richiesto. I client possono quindi utilizzare questi nomi di risorse dei luoghi per recuperare ulteriori dettagli su ogni singolo luogo utilizzando l'API Places.

Richiesta HTTP

POST https://areainsights.googleapis.com/v1:computeInsights

L'URL utilizza la sintassi di transcodifica gRPC.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "insights": [
    enum (Insight)
  ],
  "filter": {
    object (Filter)
  }
}
Campi
insights[]

enum (Insight)

Obbligatorio. Approfondimenti da calcolare. Al momento sono supportati solo INSIGHT_COUNT e INSIGHT_PLACES.

filter

object (Filter)

Obbligatorio. Filtro degli approfondimenti.

Corpo della risposta

Risposta per l'RPC v1.computeInsights.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "placeInsights": [
    {
      object (PlaceInsight)
    }
  ],
  "count": string
}
Campi
placeInsights[]

object (PlaceInsight)

Risultato per Insights.INSIGHT_PLACES.

count

string (int64 format)

Risultato per Insights.INSIGHT_COUNT.

Ambiti di autorizzazione

Richiede il seguente ambito OAuth:

  • https://www.googleapis.com/auth/cloud-platform

Insight

Approfondimenti supportati.

Enum
INSIGHT_UNSPECIFIED Non specificato.
INSIGHT_COUNT

Approfondimento sul conteggio.

Quando viene specificato questo insight, v1.computeInsights restituisce il numero di luoghi che corrispondono ai criteri di filtro specificati.

Esempio di richiesta:

{
  "insights": ["INSIGHT_COUNT"],
  "filter": {
    "locationFilter": {
      "region": {
        "place": "places/ChIJPV4oX_65j4ARVW8IJ6IJUYs"
      }
    },
    "typeFilter": {
      "includedTypes": ["restaurant"]
    },
    "operatingStatus": ["OPERATING_STATUS_OPERATIONAL"],
    "priceLevels": [
      "PRICE_LEVEL_FREE",
      "PRICE_LEVEL_INEXPENSIVE"
    ],
    "ratingFilter": {
      "minRating": 4.0
    }
  }
}

Risposta di esempio:

{
  "count": 1234
}
INSIGHT_PLACES

Luoghi di reso

Quando viene specificato questo insight, v1.computeInsights restituisce gli ID dei luoghi corrispondenti ai criteri di filtro specificati.

Esempio di richiesta:

{
  "insights": ["INSIGHT_PLACES"],
  "filter": {
    "locationFilter": {
      "region": {
        "place": "places/ChIJPV4oX_65j4ARVW8IJ6IJUYs"
      }
    },
    "typeFilter": {
      "includedTypes": ["restaurant"]
    },
    "operatingStatus": ["OPERATING_STATUS_OPERATIONAL"],
    "priceLevels": [
      "PRICE_LEVEL_FREE",
      "PRICE_LEVEL_INEXPENSIVE"
    ],
    "ratingFilter": {
      "minRating": 4.0
    }
  }
}

Risposta di esempio:

{
  "placeInsights": [
    {"place": "places/ABC"},
    {"place": "places/PQR"},
    {"place": "places/XYZ"}
  ]
}

Filtro

Filtri per l'RPC v1.computeInsights.

Rappresentazione JSON
{
  "locationFilter": {
    object (LocationFilter)
  },
  "typeFilter": {
    object (TypeFilter)
  },
  "operatingStatus": [
    enum (OperatingStatus)
  ],
  "priceLevels": [
    enum (PriceLevel)
  ],
  "ratingFilter": {
    object (RatingFilter)
  }
}
Campi
locationFilter

object (LocationFilter)

Obbligatorio. Consente di limitare i risultati ai luoghi che si trovano nell'area specificata dai filtri posizione.

typeFilter

object (TypeFilter)

Obbligatorio. Filtri per tipo di luogo.

operatingStatus[]

enum (OperatingStatus)

Facoltativo. Limita i risultati ai luoghi il cui stato di funzionamento è incluso in questo elenco. Se operatingStatus non è impostato, viene utilizzato OPERATING_STATUS_OPERATIONAL per impostazione predefinita.

priceLevels[]

enum (PriceLevel)

Facoltativo. Limita i risultati ai luoghi il cui livello di prezzo è incluso in questo elenco. Se priceLevels non è impostato, tutti i livelli di prezzo sono inclusi nei risultati.

ratingFilter

object (RatingFilter)

Facoltativo. Limita i risultati ai luoghi le cui valutazioni medie degli utenti rientrano nell'intervallo specificato da ratingFilter. Se ratingFilter non è impostato, tutte le valutazioni sono incluse nel risultato.

LocationFilter

Filtri di località.

Specifica l'area di interesse per l'approfondimento.

Rappresentazione JSON
{

  // Union field area can be only one of the following:
  "circle": {
    object (Circle)
  },
  "region": {
    object (Region)
  },
  "customArea": {
    object (CustomArea)
  }
  // End of list of possible types for union field area.
}
Campi
Campo unione area. Deve essere specificato uno dei seguenti valori. area può essere solo uno dei seguenti:
circle

object (Circle)

Area come cerchio.

region

object (Region)

Area come regione.

customArea

object (CustomArea)

Area personalizzata specificata da un poligono.

Cerchio

Un cerchio è definito da un punto centrale e da un raggio in metri.

Rappresentazione JSON
{
  "radius": integer,

  // Union field center can be only one of the following:
  "latLng": {
    object (LatLng)
  },
  "place": string
  // End of list of possible types for union field center.
}
Campi
radius

integer

Facoltativo. Il raggio del cerchio in metri

Campo unione center. Il centro del cerchio. center può essere solo uno dei seguenti:
latLng

object (LatLng)

La latitudine e la longitudine del centro del cerchio.

place

string

Formato: deve essere nel formato places/PLACE_ID, dove PLACE_ID è l'identificatore univoco di un luogo. Ad esempio: places/ChIJgUbEo8cfqokR5lP9_Wh_DaM.

LatLng

Un oggetto che rappresenta una coppia di latitudine/longitudine. Questo valore è espresso come una coppia di numeri doppi per rappresentare i gradi di latitudine e di longitudine. Se non diversamente specificato, questo oggetto deve essere conforme allo standard WGS84. I valori devono rientrare negli intervalli normalizzati.

Rappresentazione JSON
{
  "latitude": number,
  "longitude": number
}
Campi
latitude

number

La latitudine in gradi. Deve essere compreso nell'intervallo [-90,0, +90,0].

longitude

number

La longitudine in gradi. Deve essere compreso nell'intervallo [-180,0; +180,0].

Regione

Una regione è un confine geografico, ad esempio città, codici postali, contee, stati e così via.

Rappresentazione JSON
{

  // Union field region can be only one of the following:
  "place": string
  // End of list of possible types for union field region.
}
Campi
Campo unione region. Definisce una regione geografica. È possibile specificare un solo tipo di regione (ad es. luogo) alla volta. region può essere solo uno dei seguenti:
place

string

L'identificatore univoco di una specifica regione geografica.

CustomArea

Area personalizzata.

Rappresentazione JSON
{
  "polygon": {
    object (Polygon)
  }
}
Campi
polygon

object (Polygon)

Obbligatorio. L'area personalizzata rappresentata come un poligono

Poligono

Un poligono è rappresentato da una serie di coordinate collegate in una sequenza ordinata in senso antiorario. Le coordinate formano un anello chiuso e definiscono una regione riempita. Le coordinate prima e ultima sono equivalenti e devono contenere valori identici. Il formato è una versione semplificata dei poligoni GeoJSON (supportiamo solo un anello esterno antiorario).

Rappresentazione JSON
{
  "coordinates": [
    {
      object (LatLng)
    }
  ]
}
Campi
coordinates[]

object (LatLng)

Facoltativo. Le coordinate che definiscono il poligono.

TypeFilter

Filtri per tipo di luogo.

Sono supportati solo i tipi di luogo della Tabella A.

A un luogo può essere associato un solo tipo principale. Ad esempio, il tipo principale potrebbe essere "ristorante_messicano" o "steakhouse". Utilizza includedPrimaryTypes ed excludedPrimaryTypes per filtrare i risultati in base al tipo principale di un luogo.

A un luogo possono essere associati anche più valori di tipo. Ad esempio, un ristorante potrebbe avere i seguenti tipi: "seafood_restaurant", "restaurant", "food", "point_of_interest", "establishment". Utilizza includedTypes ed excludedTypes per filtrare i risultati nell'elenco dei tipi associati a un luogo.

Se una ricerca è specificata con più restrizioni di tipo, vengono restituiti solo i luoghi che soddisfano tutte le restrizioni. Ad esempio, se specifichi {"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}, i luoghi restituiti forniscono servizi correlati a "ristorante", ma non operano principalmente come "steak_house".

Se sono presenti tipi in conflitto, ad esempio un tipo compare sia in includedTypes che in excludedTypes o in includedPrimaryTypes ed excludedPrimaryTypes, viene restituito un errore INVALID_ARGUMENT.

Deve essere impostato uno dei valori includedTypes o includedPrimaryTypes.

Rappresentazione JSON
{
  "includedTypes": [
    string
  ],
  "excludedTypes": [
    string
  ],
  "includedPrimaryTypes": [
    string
  ],
  "excludedPrimaryTypes": [
    string
  ]
}
Campi
includedTypes[]

string

Facoltativo. Tipi di luoghi inclusi.

excludedTypes[]

string

Facoltativo. Tipi di luoghi esclusi.

includedPrimaryTypes[]

string

Facoltativo. Tipi di luoghi principali inclusi.

excludedPrimaryTypes[]

string

Facoltativo. Tipi di luoghi principali esclusi.

OperatingStatus

Stato di attività del luogo.

Enum
OPERATING_STATUS_UNSPECIFIED Non specificato. Questo valore non deve essere utilizzato.
OPERATING_STATUS_OPERATIONAL Il luogo è operativo e aperto durante gli orari definiti.
OPERATING_STATUS_PERMANENTLY_CLOSED Il luogo non è più in attività.
OPERATING_STATUS_TEMPORARILY_CLOSED Il luogo è temporaneamente chiuso e dovrebbe riaprire in futuro.

PriceLevel

Il livello di prezzo del luogo.

Enum
PRICE_LEVEL_UNSPECIFIED Non specificato. Questo valore non deve essere utilizzato.
PRICE_LEVEL_FREE Il luogo offre servizi senza costi.
PRICE_LEVEL_INEXPENSIVE Il luogo offre servizi economici.
PRICE_LEVEL_MODERATE Il luogo offre servizi a prezzi moderati.
PRICE_LEVEL_EXPENSIVE Il luogo offre servizi costosi.
PRICE_LEVEL_VERY_EXPENSIVE Il luogo offre servizi molto costosi.

RatingFilter

Filtri per la valutazione media degli utenti.

Rappresentazione JSON
{
  "minRating": number,
  "maxRating": number
}
Campi
minRating

number

Facoltativo. Limita i risultati ai luoghi la cui valutazione media degli utenti è maggiore o uguale a minRating. I valori devono essere compresi tra 1,0 e 5,0.

maxRating

number

Facoltativo. Limita i risultati ai luoghi la cui valutazione media degli utenti è strettamente inferiore o uguale a maxRating. I valori devono essere compresi tra 1,0 e 5,0.

PlaceInsight

Contiene informazioni su un luogo

Rappresentazione JSON
{
  "place": string
}
Campi
place

string

L'identificatore univoco del luogo. Questo nome della risorsa può essere utilizzato per recuperare i dettagli del luogo utilizzando l'API Places.