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 汇总区域地图注点密度
该函数会处理过滤条件中指定的边界地理位置,识别目标分辨率下的所有相交 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 过滤条件检索特定品牌(例如 Starbucks "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 会创建一个默认报告页面,并使用结果的标题、表格和条形图对其进行初始化。

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

填充地图会显示如上所示。您可以选择图表类型 -> 样式,进一步配置地图的外观。
如需详细了解如何直观呈现地点数据分析结果,请参阅直观呈现查询结果。