按 H3 查询 POI 数量

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 单元格分辨率级别(支持的值范围为 011)。

可选的 JSON 过滤条件

  • 其他参数,例如 typesbusiness_statusprice_levelmin_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 查询的 BigQuery 结果。

示例:按品牌过滤后,统计每个 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,请执行以下操作:

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

    Looker Studio 中的默认报告。

  4. 选择网页上的全部内容,然后将其删除。

  5. 点击插入 -> 填充地图,将填充地图添加到报告中。

  6. 图表类型 -> 设置下,按如下所示配置字段:

    Looker Studio 中的热图设置。

  7. 填充地图会显示如上所示。您可以选择图表类型 -> 样式,进一步配置地图的外观。

如需详细了解如何直观呈现地点数据分析结果,请参阅直观呈现查询结果