Recuento de lugares de interés por H3

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 con JSON_OBJECT que 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 de 0 a 11).

Filtros JSON opcionales

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:

Son los 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 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:

Mapa completado para filtrar tiendas de conveniencia y almacenes accesibles para sillas de ruedas en Nueva York.

Para importar tus datos a Looker Studio, haz lo siguiente:

  1. Ejecuta la función anterior en BigQuery para generar tus 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 en la página y bórralo.

  5. Haz clic en Insertar -> Mapa relleno para agregar un mapa relleno 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 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')]
    )
  )
);