地点计数函数是在 BigQuery 中运行的预定义 SQL 查询,是查询地点数据分析数据集以检索确切计数和地点 ID 的推荐方式。虽然您也可以直接 查询数据集,但这两种查询方法 处理隐私阈值和搜索区域的方式不同:
地点计数函数 可以返回任何计数(包括 0),但强制执行 40.0 米 x 40.0 米(1600 平方米)的最小搜索区域(40.0 米 x 40.0 米 / 1,600 平方米)。函数还会返回地点 ID,可用于查找有关各个地点的信息。
地点数据集查询 只能返回 5 及以上的计数(省略 0-4 的低计数以保留差分隐私),但对搜索区域的大小没有限制。
除非您需要执行复杂的空间分析,否则我们建议您先使用
地点计数函数,例如
PLACES_COUNT_PER_H3。
它可提供标准化网格单元的即时空间密度洞见,返回地点 ID 以进行实况检查,并且专为地理空间特征工程和机器学习模型而构建。
选择最佳地点计数函数
地点数据分析支持多种空间函数。为了优化查询执行、并行处理和批量可伸缩性,我们建议使用以下函数:
PLACES_COUNT_PER_H3:返回每个 H3 单元格的地点计数的 BigQuery 表。建议将此函数用于区域密度分析和等值线热图。-
PLACES_COUNT_V2: 返回包含地点计数和示例地点 ID 的表。此函数 接受包含输入地理位置的 表 形参 。通过直接传递整个表,BigQuery 执行引擎可以分配工作负载并并行处理空间交集,从而实现高效的批量处理,以进行大规模分析。 -
PLACES_COUNT_PER_TYPE_V2: 返回按地点类型分类的地点计数和示例地点 ID 表。与PLACES_COUNT_V2类似,将输入地理位置作为表形参传递可让 BigQuery 在大型数据集中以原生方式并行处理空间交集。
除了地点计数之外,这些函数还会针对响应的每个元素返回最多 250 个 地点 ID。
地点 ID 可用于:
使用地点计数函数执行查询
请使用以下格式调用函数:[project name
(optional)].[table name].[function name]。
如果您在设置地点数据分析时更改了关联的数据集名称,请使用自定义名称,而不是默认表名称。您还可以选择性地添加项目名称。如果未添加项目名称,查询会默认使用活跃项目。
例如:
PROJECT_NAME.places_insights___us.PLACES_COUNT_V2
使用
JSON_OBJECT
将实参传递给函数。
使用区分大小写的形参过滤查询结果
地点计数函数支持许多过滤条件来优化搜索。这些形参(例如 price_level 或 types)区分大小写,并且必须与形参名称完全匹配。如需查看选项的完整列表,请参阅
过滤条件形参参考文档。
在下一个示例中,您将应用过滤条件,使用 PLACES_COUNT_V2 函数按最低用户评分、价格水平、商家状态以及餐厅是否允许携带犬只来限制搜索。
首先,使用输入地理位置表,或使用所选地理位置准备一个表:
-- Create a table for the input geographies CREATE TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas` AS ( SELECT '1' AS geo_id, -- Unique identifier ST_GEOGPOINT(-73.9857, 40.7484) AS geo -- Empire State Building UNION ALL SELECT '2' AS geo_id, -- Unique identifier ST_GEOGPOINT(-73.9851, 40.7580) AS geo -- Times Square );
接下来,使用表和包含过滤条件的 JSON 对象调用 PLACES_COUNT_V2。搜索半径包含在 JSON 过滤条件中,并将应用于 my_search_areas 表中的每个点。
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`( TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`, JSON_OBJECT( 'geography_radius', 1000, -- Radius in meters around each point in 'geo' 'business_status', ['OPERATIONAL'], 'types', ["restaurant"], 'min_rating', 1.3, 'price_level', ['PRICE_LEVEL_INEXPENSIVE', 'PRICE_LEVEL_MODERATE'], 'allows_dogs', TRUE ) );
示例:使用 PLACES_COUNT_V2 查询餐厅数量和品牌位置
以下示例使用 PLACES_COUNT_V2 函数和自定义输入地理位置表 my_search_areas,返回纽约市帝国大厦和时代广场 1000 米范围内正常营业的餐厅数量:
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`( TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`, JSON_OBJECT( 'geography_radius', 1000, -- Radius in meters 'business_status', ['OPERATIONAL'], 'types', ["restaurant"] ) );
响应是一个 BigQuery 表,其中包含 geo_id、地理位置、计数和地点 ID 示例。

以下示例使用 PLACES_COUNT_V2 函数按特定品牌 ID 进行过滤。在此示例中,我们使用品牌 ID
"1413758728321880760" 过滤星巴克位置。
如需查找要过滤的品牌的品牌 ID,请查询数据集的 brands
表(例如 places_insights___us.brands)。如需详细了解品牌数据集,请参阅 使用品牌
数据编写查询。
例如,如需查找“星巴克”的品牌 ID:
SELECT id, name FROM `PROJECT_NAME.places_insights___us.brands` WHERE name = "Starbucks"
获取品牌 ID 后,您可以在 brand_ids 过滤条件中使用这些 ID,如以下查询所示:
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`( TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`, JSON_OBJECT( 'geography_radius', 1000, -- Radius in meters 'business_status', ['OPERATIONAL'], 'brand_ids', ["1413758728321880760"] ) );
使用 Google Cloud 工具直观呈现查询输出
分析和商业智能 工具可帮助 您从 BigQuery 数据中发现洞见。BigQuery 支持多种 Google 和第三方 数据可视化 工具,您可以使用这些工具分析地点数据分析数据中函数的结果。
如需查看直观呈现函数结果的示例,请参阅 直观呈现结果 (PLACES_COUNT_PER_H3 参考文档)。 如需详细了解如何直观呈现地点数据分析结果,请参阅直观呈现 查询结果。
函数限制和要求
地点计数函数有以下限制和要求:
- 这些函数仅支持
COUNT洞见。 - 必须使用 40.0 米 x 40.0 米(1600 平方米)的最小搜索区域(40.0 米 x 40.0 米 / 1,600 平方米)。
- 形参输入大小限制 :作为形参传递给函数的 JSON 对象的大小上限为 1 MB。此限制的影响取决于函数版本:
- 对于 V2 函数(
PLACES_COUNT_V2、PLACES_COUNT_PER_TYPE_V2),此限制仅适用于过滤条件 JSON 对象。 由于地理位置是使用表形参单独提供的,因此这些函数可以扩缩到更大的输入地理位置数量,而不会达到 JSON 大小限制。 - 对于
PLACES_COUNT_PER_H3、PLACES_COUNT、PLACES_COUNT_PER_TYPE和PLACES_COUNT_PER_GEO,此限制适用于整个 JSON 对象, 包括所有地理位置定义。这可能会限制在单个调用中可以处理的地理位置数量。
- 对于 V2 函数(
- 不支持按地点 ID、电动汽车充电选项或地址组成部分进行过滤。
- 您只能访问已订阅的城市和国家/地区的地点计数函数。如需了解 数据集访问权限,请参阅设置 地点数据分析。
- 过滤条件形参(例如
geography或types)区分大小写,并且必须与形参名称完全匹配,否则查询将失败。