Recuento de lugares de interés por H3

La función PLACES_COUNT_PER_H3 agrega datos de lugares de interés (POI) a 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, el mapeo competitivo y la generación de mapas de calor de coropletas hexagonales.

Para llamar a la función PLACES_COUNT_PER_H3, usa una cláusula FROM de SQL, ya que la función devuelve 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, la consulta se establecerá de forma predeterminada en el proyecto activo.
  • LINKED_DATASET_NAME: Es el nombre de tu conjunto de datos de Places Insights al que te suscribiste (por ejemplo, places_insights___us).
  • filters (JSON): Es un objeto JSON construido con JSON_OBJECT que contiene parámetros de filtro de par clave-valor.

Filtros JSON obligatorios

  • geography (GEOGRAPHY): Es el área de búsqueda delimitadora (punto, cadena de líneas o polígono) que se indexará.
  • h3_resolution (INTEGER): Es el nivel de resolución de la celda H3 (los valores admitidos varían de 0 a 11).

Filtros JSON opcionales

  • Parámetros adicionales, como types, business_status, price_level y min_rating, para filtrar los lugares que se cuentan dentro de cada celda Consulta la lista completa de parámetros de filtro.

Esquema de la tabla de salida

La función devuelve una tabla de BigQuery con una fila por índice de celda H3 que se cruza con tu geometría de destino:

Nombre de la columna Tipo de datos Descripción
h3_cell_index STRING Es el identificador único del índice H3 de la celda.
geography GEOGRAPHY Un polígono que representa el límite físico de la celda H3.
count INTEGER Es el recuento exacto total de lugares operativos que coinciden dentro de esta celda H3 específica, o cero si no hay lugares que coincidan.
sample_place_ids ARRAY<STRING> Un array de hasta 250 IDs de lugar ubicados dentro de esta celda, lo que permite realizar consultas directas de verdad fundamental con la API de Places.

Agrega la densidad regional de lugares de interés con PLACES_COUNT_PER_H3

La función procesa la geografía delimitadora especificada en tus filtros, identifica todos los hexágonos de H3 que se intersecan en la resolución de destino y devuelve los recuentos de lugares y los IDs de lugar exactos para cada hexágono.

Ejemplo: Cuenta las tiendas de comestibles y los minimercados accesibles para personas en silla de ruedas en el estado de Nueva York

Esta consulta agrega tiendas de conveniencia y de comestibles operativas y accesibles para personas en silla de ruedas en el estado de Nueva York con un nivel de resolución de H3 de 8. La geometría de los límites 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 los recuentos espaciales:

Resultados de BigQuery para la consulta de H3.

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 lugar 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 datos de PLACES_COUNT_PER_H3 en Looker Studio como un mapa coroplético. Cuanto más oscura sea la celda de H3, mayor será la concentración de resultados:

Mapa coroplético para filtrar las tiendas de comestibles y de conveniencia accesibles para personas en silla de ruedas en Nueva York.

Para importar tus datos a Looker Studio, sigue estos pasos:

  1. Ejecuta la función anterior en BigQuery para generar los resultados.
  2. En el panel de resultados de BigQuery, haz clic en Abrir en -> Looker Studio. Tus resultados se importan automáticamente a Looker Studio.
  3. 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.

    Informe predeterminado en Looker Studio.

  4. Selecciona todo el contenido de la página y bórralo.

  5. Haz clic en Insertar > Mapa coroplético para agregar un mapa coroplético a tu informe.

  6. En Tipos de gráficos -> Configuración, configura los campos como se muestra a continuación:

    Configuración del mapa de calor en Looker Studio.

  7. El mapa coroplético aparece como se muestra arriba. De manera opcional, puedes seleccionar Tipos de gráficos -> Estilo para configurar aún más el aspecto del mapa.

Para obtener más información sobre cómo visualizar los resultados de Places Insights, consulta Visualiza los resultados de las consultas.

Ejemplo: Consulta los recuentos históricos de lugares de interés por celda H3 con filtros específicos

En este ejemplo, se muestra cómo consultar los recuentos históricos de lugares de interés 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 VE 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')]
    )
  )
);