Descripción general

En este documento, se describe cómo compilar informes geoespaciales dinámicos con Places Insights y Data Studio. Permite que las partes interesadas no técnicas respondan sus propias preguntas y aprovechen el valor de tus datos de ubicación. En esta guía, se muestra cómo convertir informes estáticos en herramientas interactivas de estilo de mapa de calor para el análisis de mercado, sin tener que escribir SQL para cada solicitud. Habilita el acceso a datos de ubicación complejos y cierra la brecha entre la ingeniería de datos y la inteligencia empresarial.
La adopción de este patrón arquitectónico ofrece varios beneficios clave:
- Representación visual de datos: Transforma los datos de Places Insights en mapas y gráficos interactivos que comunican de inmediato la densidad y las tendencias espaciales.
- Exploración simplificada sin SQL: Permite que los miembros del equipo, como los analistas de mercado o los planificadores inmobiliarios, filtren datos de forma dinámica con parámetros predefinidos (p.ej., cambiar "Ciudad" o "Hora del día" con menús desplegables). Pueden explorar los datos sin escribir una sola línea de SQL.
- Colaboración fluida: Las funciones estándar de uso compartido de Data Studio te permiten distribuir de forma segura estas estadísticas interactivas.
Flujo de trabajo de la solución
El siguiente flujo de trabajo establece una arquitectura de informes de alto rendimiento. Pasa de una referencia estática a una aplicación completamente dinámica, lo que garantiza la exactitud de los datos antes de introducir complejidad.
Requisitos previos
Antes de comenzar, sigue estas instrucciones para configurar Places Insights. Necesitarás acceso a Data Studio, que es una herramienta gratuita.
Paso 1: Establece una referencia geoespacial estática
Antes de introducir la interactividad, establece una consulta base y asegúrate de que se renderice correctamente en Data Studio. Usa Places Insights y las capacidades geoespaciales de BigQuery para agregar datos en cuadrículas hexagonales con el sistema de indexación H3. Esto producirá un resultado de consulta que se puede usar con el tipo de mapa de mapa de relleno de Data Studio para la visualización.
1.1 Conecta datos
Usa la siguiente consulta estática para establecer la conexión inicial. Se orienta a una ubicación (Londres) y una categoría (Restaurantes) fijas para validar la canalización de datos.
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 sobre la agregación espacial
Esta consulta usa una función de la
CARTO Analytics
Toolbox (carto-os) disponible públicamente en Google Cloud BigQuery. La función
H3_FROMGEOGPOINT convierte puntos de ubicación específicos en celdas
H3,
un sistema que divide el mundo en celdas de cuadrícula hexagonales.
Usamos esta transformación porque el mapa de relleno de Data Studio requiere polígonos (formas) para renderizar colores. Si convertimos puntos en formas hexagonales, podemos visualizar la densidad de las empresas en un área específica, en lugar de trazar miles de puntos superpuestos.
Nota sobre el umbral de agregación
Todas las consultas de Places Insights requieren la cláusula WITH AGGREGATION_THRESHOLD.
Esta protección de la privacidad garantiza que los datos solo se muestren si el recuento agregado es 5 o más.
En el contexto de esta visualización, si una celda de cuadrícula H3 contiene menos de 5 restaurantes, esa celda se omite por completo del conjunto de resultados y aparecerá vacía en el mapa.
Para implementar esto en Data Studio, sigue estos pasos:
- Crea un informe en blanco nuevo.
- Selecciona BigQuery como el conector de datos.
- Elige CONSULTA PERSONALIZADA en el menú de la izquierda y selecciona el ID del proyecto de facturación.
- Pega la consulta base estática anterior en el editor.
- Borra los parámetros Usar SQL heredado, Habilitar período y Habilitar dirección de correo electrónico del usuario.
- Haz clic en Agregar.
1.2 Configura la visualización geoespacial
Una vez que se conecten los datos, configura Data Studio para que reconozca correctamente los datos de límite H3:
- Agrega una visualización de mapa de relleno al lienzo del informe desde el menú Agregar un gráfico.
- Asegúrate de que el campo
h3_geo, que contiene la geometría del polígono, esté configurado en el tipo de datos Geoespacial.- Haz clic en el ícono Editar fuente de datos (lápiz) junto al nombre de la conexión.
- Si
h3_geoestá configurado como Texto (ABC), usa el menú desplegable para seleccionar Geo > Geoespacial, - Haz clic en Listo.
- Asigna el campo
h3_indexa Ubicación (que actúa como el identificador único). - Asigna el campo
h3_geoa Campo geoespacial (que actúa como la geometría del polígono). - Asigna el campo
restaurant_counta Métrica de color.
Esto renderizará un mapa de la densidad de restaurantes por celda H3. El azul más oscuro (opción de color predeterminada) indica una celda con un recuento de restaurantes más alto.

Paso 2: Implementa parámetros dinámicos
Para que el informe sea interactivo, agregaremos controles al informe que permitan al usuario seleccionar entre las siguientes opciones:
- Localidad: Controla la ciudad en la que se centra el informe.
- Día de la semana: Filtra lugares según el día en que están abiertos, aprovechando el registro
regular_opening_hoursen el esquema. - Hora del día: Filtra lugares según su horario de atención comparando con los campos
start_timeyend_time.
Para lograr esto, pasarás los parámetros seleccionados por el usuario directamente a una consulta de Places Insights modificada en el tiempo de ejecución. En el editor de fuentes de datos de Data Studio, debes definir explícitamente estos parámetros como variables con tipo.
En Data Studio, selecciona el menú Recurso y, luego, haz clic en Gestionar las fuentes de datos agregadas. En el panel que aparece, selecciona EDIT en la fuente de datos de SQL personalizado de BigQuery que agregamos antes.
En la ventana Editar conexión, selecciona AGREGAR UN PARÁMETRO. Agregaremos tres parámetros con los siguientes valores.
| Nombre del parámetro | Tipo de datos | Valores permitidos | Lista de valores (debe coincidir exactamente con la base de datos) | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
p_locality |
Texto | Lista de valores |
|
||||||||||||||||
p_day_of_week |
Texto | Lista de valores |
|
||||||||||||||||
p_hour_of_day |
Texto | Lista de valores |
|
Configuración de ejemplo para el parámetro p_hour_of_day.

Para el parámetro p_hour_of_day, presta mucha atención a la columna Value.
Debido a que la consulta de SQL usa CAST(@p_hour_of_day AS TIME), los valores que se pasan desde Data Studio deben estar en formato HH:MM:SS estricto (reloj de 24 horas).
Una vez que hayas configurado y guardado los tres parámetros, modifica la conexión de SQL personalizado de BigQuery para hacer referencia a estas variables con la sintaxis @.
Para ello, haz clic en Editar conexión y pega la siguiente consulta modificada:
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;
Haz clic en Volver a conectar para guardar la edición. En la consulta modificada, observa las variables nuevas, como @p_hour_of_day, que se correlacionan con los nombres de los parámetros que acabamos de configurar.
Vuelve al lienzo del informe para exponer estos parámetros al usuario final:
- Agrega tres controles de lista desplegable a tu informe.
- Para cada control, configura el campo de control para que corresponda a los parámetros que creaste recientemente:
- Control 1:
p_locality - Control 2:
p_day_of_week - Control 3:
p_hour_of_day
- Control 1:
El informe final debería verse de la siguiente manera. Si cambias un valor en uno de los controles desplegables, se activará Data Studio para recuperar los datos solicitados de Places Insights antes de visualizarlos en el mapa.

Paso 3: Comparte los resultados
Usa la herramienta de uso compartido integrada en Data Studio para compartir el informe. Esto permitirá que los usuarios actualicen de forma dinámica la visualización en función de los parámetros que seleccionen de las listas desplegables.
Conclusión
Este patrón crea una herramienta de informes interactiva y escalable que aprovecha la potencia de procesamiento de BigQuery para entregar datos agregados de Places Insights a Data Studio. Esta arquitectura evita los inconvenientes de intentar visualizar conjuntos de datos sin procesar masivos y proporciona a los usuarios finales la flexibilidad para explorar datos en diferentes dimensiones, como la hora, la ubicación y el tipo de empresa, casi en tiempo real. Esta es una herramienta potente para brindar flexibilidad a las partes interesadas no técnicas para explorar los datos.
Próximos pasos
Explora otras variaciones de informes dinámicos parametrizando diferentes partes del esquema de Places Insights:
- Análisis dinámico de la competencia: Crea un parámetro para los nombres de
brandpara permitir que los usuarios cambien instantáneamente el mapa de calor entre diferentes competidores para ver su saturación relativa en un mercado. Consulta Acerca de los datos de Places Insights datos para conocer la disponibilidad de datos de marca. - Selección interactiva de sitios: Agrega parámetros para
price_level(p.ej., "Moderado" en comparación con "Caro") yratingmínimo para permitir que los equipos inmobiliarios filtren de forma dinámica las áreas que coinciden con perfiles demográficos específicos. - Áreas de captación personalizadas: En lugar de filtrar por nombre de ciudad, permite que los usuarios definan áreas de estudio personalizadas.
- Basado en el radio: Crea tres parámetros numéricos: p_latitude, p_longitude y p_radius_meters. Las coordenadas se pueden obtener de las APIs de Google Maps Platform, incluida la API de Geocoding. En tu consulta, insértalas en la función ST_DWITHIN:
ST_DWITHIN(point, ST_GEOGPOINT(@p_longitude, @p_latitude), @p_radius_meters)
- Basado en polígonos: Para formas personalizadas complejas (como territorios de ventas), los usuarios no pueden ingresar texto de geometría con facilidad. En su lugar, crea una tabla de consulta en BigQuery que contenga las geometrías de formas y un nombre descriptivo (p.ej., "Zona A"). Crea un parámetro de texto
p_zone_nameen Data Studio para permitir que los usuarios seleccionen la zona y usa una subconsulta para recuperar la geometría de la funciónST_CONTAINS.
- Basado en el radio: Crea tres parámetros numéricos: p_latitude, p_longitude y p_radius_meters. Las coordenadas se pueden obtener de las APIs de Google Maps Platform, incluida la API de Geocoding. En tu consulta, insértalas en la función ST_DWITHIN:
Colaboradores
- David Szajngarten | Ingeniero de relaciones con desarrolladores
- Henrik Valve | Ingeniero de DevX