La función PLACES_COUNT_PER_H3 agrega datos de lugares de interés (POI) en
celdas de cuadrícula espacial H3 estandarizadas con una resolución especificada. Esta función es la ruta recomendada para el análisis de densidad regional, la asignación competitiva y la generación de mapas de calor coropletos hexagonales.
Para llamar a la función PLACES_COUNT_PER_H3, usa una cláusula FROM de SQL, ya que la función muestra una tabla.
Sintaxis y parámetros
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_H3`( filters )
Parámetros
PROJECT_NAME: Es el nombre de tu proyecto de Google Cloud. Si no especificas un nombre de proyecto, tu consulta usará de forma predeterminada el proyecto activo.LINKED_DATASET_NAME: Es el nombre de tu conjunto de datos de Places Insights suscrito (por ejemplo,places_insights___us).filters(JSON): Es un objeto JSON construido conJSON_OBJECTque contiene parámetros de filtro de par clave-valor.
Filtros JSON obligatorios
geography(GEOGRAPHY): Es el área de búsqueda delimitada (punto, línea o polígono) que se indexará.h3_resolution(INTEGER): Es el nivel de resolución de la celda H3 (los valores admitidos varían de0a11).
Filtros JSON opcionales
- Parámetros adicionales, como
types,business_status,price_levelymin_rating, para filtrar los lugares que se cuentan en cada celda. Consulta la lista completa de parámetros de filtro.
Esquema de la tabla de salida
La función muestra una tabla de BigQuery con una fila por índice de celda H3 que interseca tu geometría de destino:
| Nombre de la columna | Tipo de datos | Descripción |
|---|---|---|
h3_cell_index |
STRING | Es el identificador de índice H3 único de la celda. |
geography |
GEOGRAPHY | Es un polígono que representa el límite físico de la celda H3. |
count |
INTEGER | Es el recuento exacto total de lugares operativos coincidentes dentro de esta celda H3 específica o cero si no coincide ningún lugar. |
sample_place_ids |
ARRAY<STRING> | Es un array de hasta 250 IDs de lugares ubicados dentro de esta celda, lo que permite realizar consultas directas de datos verificados con la API de Places. |
Agrega la densidad regional de POI con PLACES_COUNT_PER_H3
La función procesa la geografía delimitada especificada en tus filtros, identifica todos los hexágonos H3 que se intersecan en tu resolución de destino y muestra los recuentos exactos de lugares y los IDs de lugares para cada hexágono.
Ejemplo: Cuenta las tiendas de comestibles y de conveniencia accesibles para sillas de ruedas en el estado de Nueva York
Esta consulta agrega tiendas de comestibles y de conveniencia operativas y accesibles para sillas de ruedas en el estado de Nueva York con un nivel de resolución H3 de 8. La geometría de límite del estado de Nueva York se consulta de forma dinámica desde el conjunto de datos públicos 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 de respuesta
La consulta genera una tabla fila por fila que asigna celdas directamente a recuentos espaciales:

Ejemplo: Cuenta los lugares por celda H3 filtrados por marca
En el siguiente ejemplo, se usa el filtro brand_ids para recuperar
los recuentos de lugares y los IDs de lugares de muestra para marcas específicas, como Starbucks
"1413758728321880760" y 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'] ) );
Visualiza los resultados de H3 de forma dinámica en Looker Studio
En las siguientes imágenes, se muestran los datos de PLACES_COUNT_PER_H3 que se muestran en Looker Studio como un mapa relleno. Cuanto más oscura sea la celda H3, mayor será la concentración de resultados:

Para importar tus datos a Looker Studio, haz lo siguiente:
- Ejecuta la función anterior en BigQuery para generar tus resultados.
- En el panel de resultados de BigQuery, haz clic en Abrir en -> Looker Studio. Tus resultados se importan automáticamente a Looker Studio.
Looker Studio crea una página de informe predeterminada y la inicializa con un título, una tabla y un gráfico de barras de los resultados.

Selecciona todo en la página y bórralo.
Haz clic en Insertar -> Mapa relleno para agregar un mapa relleno a tu informe.
En Tipos de gráficos -> Configuración, configura los campos como se muestra a continuación:

El mapa relleno aparece como se muestra arriba. De manera opcional, puedes seleccionar Tipos de gráficos -> Estilo para configurar aún más la apariencia del mapa.
Para obtener más información sobre cómo visualizar los resultados de Places Insights, consulta Visualiza los resultados de la consulta.
Ejemplo: Consulta los recuentos históricos de POI por celda H3 con filtros específicos
En este ejemplo, se muestra cómo consultar los recuentos históricos de POI en una cuadrícula espacial H3 para un mes de instantánea específico con el filtro snapshot_date. Define un área de búsqueda geográfica con un búfer alrededor de una ubicación y aplica criterios adicionales para los recuentos de conectores de carga de vehículos eléctricos con max_ev_charge_connector_count junto con regular_opening_hours específicos.
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')] ) ) );