PLACES_COUNT_PER_H3 函数会将兴趣点 (POI) 数据汇总到
指定分辨率下的标准化 H3 空间网格单元中。此函数是进行区域密度分析、竞争性地图绘制和生成六边形分级统计热图的推荐途径。
如需调用 PLACES_COUNT_PER_H3 函数,请使用 SQL FROM 子句,因为该函数会返回一个表。
语法和参数
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_H3`( filters )
参数
PROJECT_NAME:您的 Google Cloud 项目的名称。如果您未指定项目名称,查询将默认使用活跃项目。LINKED_DATASET_NAME:您订阅的地点数据分析数据集的名称(例如places_insights___us)。filters(JSON):使用JSON_OBJECT构建的 JSON 对象,其中包含键值对过滤条件参数。
必需的 JSON 过滤条件
geography(GEOGRAPHY): 要编入索引的边界搜索区域(点、线串或多边形)。h3_resolution(INTEGER) :H3 单元格分辨率级别(支持的值范围为0到11)。
可选的 JSON 过滤条件
- 其他参数,例如
types、business_status、price_level和min_rating,用于过滤每个单元格中统计的地点。请参阅过滤条件参数的 完整列表。
输出表架构
该函数会返回一个 BigQuery 表,其中每个 H3 单元格索引与目标几何图形相交,对应一行:
| 列名 | 数据类型 | 说明 |
|---|---|---|
h3_cell_index |
STRING | 单元格的唯一 H3 索引标识符。 |
geography |
GEOGRAPHY | 表示 H3 单元格物理边界的多边形。 |
count |
INTEGER | 此特定 H3 单元格中匹配的营业地点的确切总数,如果没有匹配的地点,则为零。 |
sample_place_ids |
ARRAY<STRING> | 此单元格中最多 250 个地点 ID 的数组,可使用 Places API 直接进行实际情况查询。 |
使用 PLACES_COUNT_PER_H3 汇总区域 POI 密度
该函数会处理过滤条件中指定的边界地理位置,识别目标分辨率下的所有相交 H3 六边形,并返回每个六边形的确切地点计数和地点 ID。
示例:统计纽约州可供轮椅通行的杂货店和便利店的数量
此查询使用 H3 分辨率级别 8 汇总了纽约州可供轮椅通行的营业便利店和杂货店。纽约州的边界几何图形是从 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;
回答格式
查询会生成一个逐行表,将单元格直接映射到空间计数:

示例:统计按品牌过滤的每个 H3 单元格中的地点数量
以下示例使用 brand_ids 过滤条件检索
地点计数和特定品牌(例如星巴克
"1413758728321880760" 和 Dunkin "1314981297593671295")的示例地点 ID:
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'] ) );
在 Looker Studio 中动态直观呈现 H3 结果
下图显示了在 Looker Studio 中以填充地图形式显示的 PLACES_COUNT_PER_H3 中的数据。H3 单元格的颜色越深,结果的集中度越高:

如需将数据导入 Looker Studio,请执行以下操作:
- 在 BigQuery 中运行上述函数以生成结果。
- 在 BigQuery 结果窗格中,依次点击 打开方式 -> Looker Studio。您的结果会自动导入 Looker Studio。
Looker Studio 会创建一个默认报告页面,并使用结果的标题、表格和条形图对其进行初始化。

选择页面上的所有内容并将其删除。
依次点击插入 -> 填充地图 ,将填充地图添加到报告中。
在图表类型 -> 设置 下,按如下所示配置字段:

填充地图如上所示。您可以选择图表类型 -> 样式 ,以进一步配置地图的外观。
如需详细了解如何直观呈现地点数据分析结果,请参阅直观呈现 查询结果。
示例:使用特定过滤条件按 H3 单元格查询历史 POI 计数
此示例演示了如何使用 snapshot_date 过滤条件查询特定快照月份的 H3 空间网格中的历史 POI 计数。它使用位置周围的缓冲区定义地理搜索区域,并使用 max_ev_charge_connector_count 以及特定的 regular_opening_hours 为电动汽车充电连接器计数应用其他条件。
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')] ) ) );