Esegui query sui conteggi dei PDI per H3

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 utilizzando JSON_OBJECT contenente 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 da 0 a 11).

Filtri JSON facoltativi

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:

Risultati BigQuery per la query H3.

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:

Mappa compilata per filtrare i minimarket e i negozi di alimentari accessibili alle persone con disabilità motorie a New York.

Per importare i dati in Looker Studio:

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

    Report predefinito in Looker Studio.

  4. Seleziona tutti gli elementi nella pagina ed eliminali.

  5. Fai clic su Inserisci -> Mappa riempita per aggiungere una mappa riempita al report.

  6. In Tipi di grafici -> Configurazione, configura i campi come mostrato di seguito:

    Configurazione della mappa termica in Looker Studio.

  7. 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')]
    )
  )
);