La funzione PLACES_COUNT_PER_H3 aggrega i dati sui punti di interesse (PDI) in
celle della griglia spaziale H3 standardizzate a una risoluzione specificata. Questa funzione è il percorso consigliato per l'analisi della densità regionale, la mappatura della concorrenza e la generazione di mappe termiche coropletiche esagonali.
Per chiamare la funzione PLACES_COUNT_PER_H3, utilizza una clausola FROM SQL perché la funzione restituisce una tabella.
Sintassi e parametri
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_H3`( filters )
Parametri
PROJECT_NAME: il nome del tuo progetto cloud Google. Se non specifichi un nome del progetto, la query utilizzerà per impostazione predefinita il progetto attivo.LINKED_DATASET_NAME: il nome del set di dati Places Insights a cui hai eseguito la sottoscrizione (ad esempio,places_insights___us).filters(JSON): un oggetto JSON creato utilizzandoJSON_OBJECTcontenente parametri di filtro coppia chiave-valore.
Filtri JSON obbligatori
geography(GEOGRAPHY): l'area di ricerca di delimitazione (punto, stringa di linea o poligono) da indicizzare.h3_resolution(INTEGER): il livello di risoluzione della cella H3 (i valori supportati vanno da0a11).
Filtri JSON facoltativi
- Parametri aggiuntivi come
types,business_status,price_levelemin_ratingper filtrare i luoghi conteggiati all'interno di ogni cella. Consulta l' elenco completo dei parametri di filtro.
Schema della tabella di output
La funzione restituisce una tabella BigQuery con una riga per ogni indice di cella H3 che interseca la geometria di destinazione:
| Nome colonna | Tipo di dati | Descrizione |
|---|---|---|
h3_cell_index |
STRING | L'identificatore univoco dell'indice H3 per la cella. |
geography |
GEOGRAPHY | Un poligono che rappresenta il confine fisico della cella H3. |
count |
INTEGER | Il conteggio esatto totale dei luoghi operativi corrispondenti all'interno di questa cella H3 specifica o zero se non corrispondono luoghi. |
sample_place_ids |
ARRAY<STRING> | Un array di massimo 250 ID luogo situati all'interno di questa cella, che consente query di verità di base dirette utilizzando l'API Places. |
Aggregare la densità dei PDI regionali utilizzando PLACES_COUNT_PER_H3
La funzione elabora la geografia di delimitazione specificata nei filtri, identifica tutti gli esagoni H3 intersecanti alla risoluzione di destinazione e restituisce i conteggi esatti dei luoghi e gli ID luogo per ogni esagono.
Esempio: conta i negozi di alimentari e di alimentari accessibili alle sedie a rotelle nello stato di New York
Questa query aggrega i negozi di alimentari e di alimentari operativi e accessibili alle sedie a rotelle nello stato di New York utilizzando un livello di risoluzione H3 di 8. La geometria dei confini dello stato di New York viene eseguita una query dinamica dal set di dati pubblico bigquery-public-data.geo_us_boundaries.states.
-- Query POI count per H3 cell intersecting the New York State polygon boundary SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_H3`( JSON_OBJECT( 'geography', ( -- Dynamically retrieve the boundary geography for New York State SELECT state_geom FROM `bigquery-public-data.geo_us_boundaries.states` WHERE state = 'NY' LIMIT 1 ), 'types', ['grocery_store', 'convenience_store'], 'business_status', ['OPERATIONAL'], 'h3_resolution', 8, 'wheelchair_accessible_entrance', TRUE ) ) ORDER BY count DESC;
Formato della risposta
La query genera una tabella riga per riga che mappa le celle direttamente ai conteggi spaziali:

Esempio: conta i luoghi per cella H3 filtrati per brand
L'esempio seguente utilizza il filtro brand_ids per recuperare
i conteggi dei luoghi e gli ID luogo di esempio per brand specifici, come Starbucks
"1413758728321880760" e Dunkin "1314981297593671295":
DECLARE geo GEOGRAPHY; -- Get the geography for New York City. SET geo = (SELECT geometry FROM `bigquery-public-data.overture_maps.division_area` WHERE country = 'US' AND subtype = 'locality' AND names.primary = 'New York' LIMIT 1); SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_H3`( JSON_OBJECT( 'geography', geo, 'h3_resolution', 8, 'brand_ids', ["1413758728321880760", "1314981297593671295"], 'business_status', ['OPERATIONAL'] ) );
Visualizzare i risultati H3 in modo dinamico in Looker Studio
Le immagini seguenti mostrano i dati di PLACES_COUNT_PER_H3 visualizzati in Looker Studio come una mappa riempita. Più scura è la cella H3, maggiore è la concentrazione dei risultati:

Per importare i dati in Looker Studio:
- Esegui la funzione sopra in BigQuery per generare i risultati.
- Nel riquadro dei risultati di BigQuery, fai clic su Apri in -> Looker Studio. I risultati vengono importati automaticamente in Looker Studio.
Looker Studio crea una pagina di report predefinita e la inizializza con un titolo, una tabella e un grafico a barre dei risultati.

Seleziona tutti gli elementi nella pagina ed eliminali.
Fai clic su Inserisci -> Mappa riempita per aggiungere una mappa riempita al report.
In Tipi di grafici -> Configurazione, configura i campi come mostrato di seguito:

La mappa riempita viene visualizzata come sopra. Se vuoi, puoi selezionare Tipi di grafici -> Stile per configurare ulteriormente l'aspetto della mappa.
Per saperne di più sulla visualizzazione dei risultati di Places Insights, consulta Visualizzare i risultati delle query.
Esempio: esegui una query sui conteggi storici dei PDI per cella H3 con filtri specifici
Questo esempio mostra come eseguire una query sui conteggi storici dei PDI in una griglia spaziale H3 per un mese di snapshot specifico utilizzando il filtro snapshot_date. Definisce un'area di ricerca geografica utilizzando un buffer intorno a una località e applica criteri aggiuntivi per i conteggi dei connettori di ricarica per veicoli elettrici utilizzando max_ev_charge_connector_count insieme a regular_opening_hours specifici.
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_H3`( JSON_OBJECT( 'geography', ST_BUFFER(ST_GEOGPOINT(-74.0060, 40.7128), 5000), -- 5km radius around NYC 'h3_resolution', 8, 'business_status', ['OPERATIONAL'], 'snapshot_date', '2026-01', -- Target snapshot month (YYYY-MM) 'max_ev_charge_connector_count', 3, -- Maximum connector count 'regular_opening_hours', JSON_OBJECT( 'monday', [JSON_OBJECT('start_time', '09:00', 'end_time', '12:00')] ) ) );