Panoramica

Questo documento descrive come creare report geospaziali dinamici utilizzando Places Insights e Looker Studio. Sfrutta il valore dei tuoi dati sulla posizione consentendo agli stakeholder non tecnici di rispondere alle proprie domande. Questa guida mostra come trasformare i report statici in strumenti interattivi in stile mappa termica per l'analisi di mercato, senza dover scrivere codice SQL per ogni richiesta. Consente l'accesso a dati sulla posizione complessi, colmando il divario tra l'ingegneria dei dati e la business intelligence.
L'adozione di questo pattern architetturale offre diversi vantaggi chiave:
- Rappresentazione visiva dei dati:trasforma i dati di Places Insights in mappe e grafici interattivi che comunicano immediatamente la densità spaziale e le tendenze.
- Esplorazione semplificata senza SQL: consente ai membri del team, come analisti di mercato o pianificatori immobiliari, di filtrare dinamicamente i dati utilizzando parametri predefiniti (ad es. modificando "Città" o "Ora del giorno" utilizzando i menu a discesa). Possono esplorare i dati senza scrivere una sola riga di SQL.
- Collaborazione perfetta: le funzionalità di condivisione standard di Looker Studio ti consentono di distribuire in modo sicuro queste informazioni interattive.
Flusso di lavoro della soluzione
Il seguente flusso di lavoro stabilisce un'architettura di reporting efficiente. Passa da una base di riferimento statica a un'applicazione completamente dinamica, garantendo la correttezza dei dati prima di introdurre complessità.
Prerequisiti
Prima di iniziare, segui queste istruzioni per configurare Approfondimenti su Places. Avrai bisogno dell'accesso a Looker Studio, che è uno strumento senza costi.
Passaggio 1: stabilisci una baseline geospaziale statica
Prima di introdurre l'interattività, crea una query di base e assicurati che venga visualizzata correttamente in Looker Studio. Utilizza Places Insights e le funzionalità geospaziali di BigQuery per aggregare i dati in griglie esagonali utilizzando il sistema di indicizzazione H3. In questo modo verrà generato un output della query che può essere utilizzato con il tipo di grafico a mappa riempita di Looker Studio per la visualizzazione.
1.1 Connessione ai dati
Utilizza la seguente query statica per stabilire la connessione iniziale. Ha come target una località (Londra) e una categoria (Ristoranti) fisse per convalidare la pipeline di dati.
SELECT
h3_index,
`carto-os.carto.H3_BOUNDARY`(h3_index) AS h3_geo,
restaurant_count
FROM (
SELECT WITH AGGREGATION_THRESHOLD
`carto-os.carto.H3_FROMGEOGPOINT`(point, 8) AS h3_index,
COUNT(*) AS restaurant_count
FROM
-- Note: Change 'gb' to your target country code (e.g., 'us')
`places_insights___gb.places`
WHERE
'London' IN UNNEST(locality_names)
AND 'restaurant' IN UNNEST(types)
GROUP BY
h3_index
)
ORDER BY
restaurant_count DESC;
Nota sull'aggregazione spaziale
Questa query utilizza una funzione del
CARTO Analytics
Toolbox (carto-os) disponibile pubblicamente in Google Cloud BigQuery. La funzione
H3_FROMGEOGPOINT converte punti di posizione specifici in celle H3,
un sistema che divide il mondo in celle di griglia esagonali.
Utilizziamo questa trasformazione perché la mappa riempita di Looker Studio richiede poligoni (forme) per il rendering dei colori. Convertendo i punti in forme esagonali, possiamo visualizzare la densità delle attività in un'area specifica, anziché tracciare migliaia di punti sovrapposti.
Nota sulla soglia di aggregazione
Tutte le query Places Insights richiedono la clausola WITH AGGREGATION_THRESHOLD.
Questa protezione della privacy garantisce che i dati vengano restituiti solo se il conteggio aggregato è pari o superiore a 5.
Nel contesto di questa visualizzazione, se una cella della griglia H3 contiene meno di 5 ristoranti, questa cella viene omessa completamente dal set di risultati e apparirà vuota sulla mappa.
Per implementare questa funzionalità in Looker Studio:
- Crea un nuovo report vuoto.
- Seleziona BigQuery come connettore dati.
- Scegli QUERY PERSONALIZZATA dal menu a sinistra e seleziona l'ID progetto di fatturazione.
- Incolla la query di base statica sopra nell'editor.
- Deseleziona i parametri Utilizza SQL legacy, Attiva intervallo di date e Attiva indirizzo email del visualizzatore.
- Fai clic su Aggiungi.
1.2 Configura la visualizzazione geospaziale
Una volta connessi i dati, configura Looker Studio in modo che riconosca correttamente i dati del confine H3:
- Aggiungi una visualizzazione Mappa riempita al canvas del report dal menu Aggiungi un grafico.
- Assicurati che il campo
h3_geo, che contiene la geometria del poligono, sia impostato sul tipo di dati geospaziale.- Fai clic sull'icona Modifica origine dati (a forma di matita) accanto al nome della connessione.
- Se
h3_geoè impostato su Testo (ABC), utilizza il menu a discesa per selezionare Geo > Geospaziale. - Fai clic su Fine.
- Mappa il campo
h3_indexsu Posizione (che funge da identificatore univoco). - Mappa il campo
h3_geoal campo geospaziale (che funge da geometria del poligono). - Mappa il campo
restaurant_countalla metrica Colore.
Verrà visualizzata una mappa della densità dei ristoranti per cella H3. Il blu più scuro (opzione di colore predefinita) indica una cella con un numero maggiore di ristoranti.

Passaggio 2: implementa i parametri dinamici
Per rendere interattivo il report, aggiungeremo controlli che consentono all'utente di scegliere tra le seguenti opzioni:
- Località: controlla la città su cui si concentra il report.
- Giorno della settimana: filtra i luoghi in base al giorno di apertura, sfruttando
il record
regular_opening_hoursnello schema. - Ora del giorno: filtra i luoghi in base all'orario di apertura confrontando i campi
start_timeeend_time.
Per farlo, devi passare i parametri selezionati dall'utente direttamente a una query Places Insights modificata in fase di runtime. Nell'editor delle origini dati di Looker Studio, devi definire esplicitamente questi parametri come variabili tipizzate.
In Looker Studio, seleziona il menu Risorsa, poi fai clic su Gestisci origini dati
aggiunte. Nel riquadro visualizzato, seleziona EDIT in corrispondenza dell'origine dati SQL personalizzato BigQuery
che abbiamo aggiunto in precedenza.
Nella finestra Modifica connessione, seleziona AGGIUNGI UN PARAMETRO. Aggiungeremo tre parametri con i valori riportati di seguito.
| Nome parametro | Tipo di dati | Valori consentiti | Elenco di valori (deve corrispondere esattamente al database) | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
p_locality |
Testo | Elenco di valori |
|
||||||||||||||||
p_day_of_week |
Testo | Elenco di valori |
|
||||||||||||||||
p_hour_of_day |
Testo | Elenco di valori |
|
Esempio di configurazione per il parametro p_hour_of_day.

Per il parametro p_hour_of_day, presta molta attenzione alla colonna Value.
Poiché la query SQL utilizza CAST(@p_hour_of_day AS TIME), i valori passati
da Looker Studio devono essere nel formato HH:MM:SS rigoroso (orologio a 24 ore).
Dopo aver configurato e salvato tutti e tre i parametri, modifica la connessione SQL personalizzata BigQuery per fare riferimento a queste variabili utilizzando la sintassi @.
Per farlo, fai clic su Modifica connessione e incolla la query modificata di seguito:
SELECT
h3_index,
`carto-os.carto.H3_BOUNDARY`(h3_index) AS h3_geo,
restaurant_count
FROM (
SELECT WITH AGGREGATION_THRESHOLD
`carto-os.carto.H3_FROMGEOGPOINT`(point, 8) AS h3_index,
COUNT(*) AS restaurant_count
FROM
`places_insights___gb.places`
WHERE
-- Dynamic locality filter based on parameter
@p_locality IN UNNEST(locality_names)
AND 'restaurant' IN UNNEST(types)
AND business_status = 'OPERATIONAL'
AND EXISTS (
SELECT 1
FROM UNNEST(
CASE @p_day_of_week
WHEN 'monday' THEN regular_opening_hours.monday
WHEN 'tuesday' THEN regular_opening_hours.tuesday
WHEN 'wednesday' THEN regular_opening_hours.wednesday
WHEN 'thursday' THEN regular_opening_hours.thursday
WHEN 'friday' THEN regular_opening_hours.friday
WHEN 'saturday' THEN regular_opening_hours.saturday
WHEN 'sunday' THEN regular_opening_hours.sunday
END
) AS hours
WHERE hours.start_time <= CAST(@p_hour_of_day AS TIME)
AND hours.end_time >= TIME_ADD(CAST(@p_hour_of_day AS TIME), INTERVAL 1 HOUR)
)
GROUP BY
h3_index
)
ORDER BY
restaurant_count DESC;
Fai clic su Riconnetti per salvare la modifica. Nella query modificata, prendi nota delle nuove variabili
come @p_hour_of_day, che corrispondono ai nomi dei parametri che abbiamo appena configurato.
Torna al canvas del report per mostrare questi parametri all'utente finale:
- Aggiungi tre controlli Elenco a discesa al report.
- Per ogni controllo, imposta il campo Controllo in modo che corrisponda ai parametri che hai creato di recente:
- Controllo 1:
p_locality - Controllo 2:
p_day_of_week - Controllo 3:
p_hour_of_day
- Controllo 1:
Il report finale dovrebbe essere simile al seguente. La modifica di un valore in uno dei controlli a discesa attiverà il recupero dei dati richiesti da Places Insights da parte di Looker Studio prima della visualizzazione sulla mappa.

Passaggio 3: condividi i risultati
Utilizza lo strumento di condivisione integrato in Looker Studio per condividere il report. In questo modo, gli spettatori potranno aggiornare dinamicamente la visualizzazione in base ai parametri selezionati dagli elenchi a discesa.
Conclusione
Questo pattern crea uno strumento di reporting scalabile e interattivo che sfrutta la potenza di calcolo di BigQuery per fornire dati aggregati di Places Insights a Looker Studio. Questa architettura evita le insidie del tentativo di visualizzare set di dati non elaborati di grandi dimensioni e offre agli utenti finali la flessibilità di esplorare i dati in diverse dimensioni, come tempo, posizione e tipo di attività, in tempo quasi reale. Si tratta di uno strumento potente che offre agli stakeholder non tecnici la flessibilità di esplorare i dati.
Passaggi successivi
Esplora altre varianti di report dinamici parametrizzando diverse parti dello schema di Places Insights:
- Analisi dinamica della concorrenza:crea un parametro per i nomi di
brandper consentire agli utenti di passare istantaneamente da una mappa termica a un'altra per visualizzare la saturazione relativa in un mercato. Per informazioni sulla disponibilità dei dati del brand, consulta Informazioni sui dati di Places Insights. - Selezione interattiva del sito:aggiungi parametri per
price_level(ad es. "Moderato" rispetto a "Costoso") eratingminimo per consentire ai team immobiliari di filtrare dinamicamente le aree che corrispondono a profili demografici specifici. - Aree di utenza personalizzate:anziché filtrare in base al nome della città, consente agli utenti
di definire aree di studio personalizzate.
- Basato sul raggio:crea tre parametri numerici: p_latitude,
p_longitude e p_radius_meters. Le coordinate possono essere ottenute dalle
API Google Maps Platform, inclusa l'API Geocoding. Nella query,
inserisci questi valori nella funzione ST_DWITHIN:
ST_DWITHIN(point, ST_GEOGPOINT(@p_longitude, @p_latitude), @p_radius_meters)
- Basato su poligoni:per forme personalizzate complesse (come i territori di vendita),
gli utenti non possono inserire facilmente il testo della geometria. Crea invece una tabella di ricerca
in BigQuery contenente le geometrie delle forme e un nome descrittivo (ad es.
"Zona A"). Crea un parametro di testo
p_zone_namein Looker Studio per consentire agli utenti di selezionare la zona e utilizza una sottoquery per recuperare la geometria per la funzioneST_CONTAINS.
- Basato sul raggio:crea tre parametri numerici: p_latitude,
p_longitude e p_radius_meters. Le coordinate possono essere ottenute dalle
API Google Maps Platform, inclusa l'API Geocoding. Nella query,
inserisci questi valori nella funzione ST_DWITHIN:
Collaboratori
- David Szajngarten | Developer Relations Engineer
- Henrik Valve | DevX Engineer