本文档介绍了 Places Aggregate API 的请求参数,并包含有关使用此服务的分析和最佳实践。
借助 Places Aggregate API,您可以执行多项关键功能:
- 统计地点数量:确定符合特定条件的地点数量,例如位置类型、营业状态、价格水平和评分。
- 检索地点详情:获取符合指定过滤条件的地点名称,然后使用 Places API 提取更详细的信息。
- 灵活的过滤功能:应用全面的过滤条件,获取精确的汇总数据。可用的过滤条件包括:
- 地理区域(圆形、区域或自定义多边形)
- 地点类型
- 营业状态
- 价格水平
- 分级范围
必需参数
本部分介绍了向 Places Aggregate API 发出请求时所需的参数。每个请求都必须提供以下信息:
- 一种数据分析类型。
- 位置过滤条件和类型过滤条件。
数据分析类型
指定要计算的分析类型。支持以下数据分析类型:
INSIGHT_COUNT
:返回符合过滤条件的地点数量。INSIGHT_PLACES
:返回符合过滤条件的地点 ID。
过滤条件
指定过滤地点的条件。您必须至少指定 LocationFilter
和 TypeFilter
。
位置过滤条件
位置过滤条件可以具有以下类型之一:
circle
:将区域定义为具有中心和半径的圆。region
:将某个区域定义为地区。customArea
:将某个区域定义为自定义多边形。
圆形
如果您选择将地理区域指定为圆形,则需要提供 center
和 radius
。center
可以是纬度和经度,也可以是圆心的地点 ID。此方法可根据您定义的圆形区域进行精确而准确的过滤。
center
:latLng
:圆心的纬度和经度。纬度必须是介于 -90 到 90 之间的数字(含 -90 和 90)。经度必须是介于 -180 到 180 之间的数字(含端点值)。place
:圆心的地点 ID。请注意,系统仅支持点状地点。此字符串必须以places/
前缀开头。
radius
:圆的半径(以米为单位)。此数值必须为正数。
区域
通过将地点 ID 传递给 place
参数,将您的区域定义为区域。地点 ID 表示地理区域(例如可用多边形表示的区域)。例如,佛罗里达州坦帕的地点 ID 为 places/ChIJ4dG5s4K3wogRY7SWr4kTX6c
。请注意,并非所有地点 ID 都具有明确定义的几何形状,在这些情况下,Places Aggregate API 会返回 400 错误代码,并显示一条消息,指明相应区域不受支持。此外,对于复杂的地理区域,内部处理优化可能会导致代表该区域的面积略微过高估计(最多 2-3%)。
如需确定某个地点 ID 是否表示不受支持的地点类型,请在 Geocoding API 请求中传递该地点 ID。响应中包含 type
数组,其中列出了与地点 ID 关联的地点类型,例如 locality
、neighborhood
或 country
。如果某个地点的任何类型与此列表中的类型匹配,则该地点将被拒绝进行区域过滤。
不支持的地点类型包括:
establishment
:通常表示某个尚未归类的地点。intersection
:表示主要交叉路口,通常是两条主要道路的交叉路口。subpremise
:表示营业场所级别以下的寻址实体,例如公寓、单元或套房。
自定义区域
使用纬度和经度坐标定义自定义多边形的区域。
您可以访问 https://geojson.io/ 绘制自定义多边形,然后将这些坐标输入到请求中。多边形必须至少包含 4 个坐标,其中第一个坐标和最后一个坐标相同。所提供的坐标中必须至少有 3 个是唯一的。
连续相同的坐标将被视为单个坐标。 不过,如果出现不连续的重复坐标(除了必需的相同第一个和最后一个坐标),则会导致错误。
此外,不允许非相邻的边相交,也不允许长度为 180 度的边(即相邻的顶点不能是对跖点)。
例如:
"coordinates":[ { "latitude":37.776, "longitude":-122.666 }, { "latitude":37.130, "longitude":-121.898 }, { "latitude":37.326, "longitude":-121.598 }, { "latitude":37.912, "longitude":-122.247 }, { "latitude":37.776, "longitude":-122.666 } ]
类型过滤
指定要包含或排除的地点类型。如需查看 Places Aggregate API 支持的主要和次要地点类型列表,请参阅 Places API(新)的地点类型下的表 A。您必须至少指定一种 includedTypes
或 includedPrimaryTypes
类型。
includedTypes
:包含的位置类型列表。excludedTypes
:排除的地点类型列表。includedPrimaryTypes
:包含的主要地点类型列表。excludedPrimaryTypes
:排除的主要地点类型列表。
如需详细了解类型过滤条件和地点类型的运作方式,请参阅有关类型过滤条件的更多信息。
可选参数
以下过滤条件为可选项:
operatingStatus
:指定要包含或排除的地点的状态。 默认按operatingStatus: OPERATING_STATUS_OPERATIONAL
(一个特定值)进行过滤。priceLevels
:指定要纳入的场所的价格水平。默认情况下,系统不会应用任何价格水平过滤条件,并会返回所有地点(包括那些没有价格水平信息的地点)。ratingFilter
:指定地点的评分范围。默认情况下不进行过滤(结果中包含所有评分)。
营业状态
借助 operatingStatus
过滤器,您可以根据运营状态(例如 OPERATIONAL
或 TEMPORARILY_CLOSED
)进行过滤。operatingStatus
过滤器的行为如下:
- 如果未提供任何过滤条件,则结果中仅包含营业状态为
OPERATING_STATUS_OPERATIONAL
的地点。 - 如果提供了一个或多个过滤条件,您必须指定有效的运行状态值(
OPERATING_STATUS_OPERATIONAL
、OPERATING_STATUS_PERMANENTLY_CLOSED
或OPERATING_STATUS_TEMPORARILY_CLOSED
)。
价格水平
借助 priceLevels
过滤条件,您可以根据地点的价格水平过滤地点。有效价格水平值包括:PRICE_LEVEL_FREE
、PRICE_LEVEL_INEXPENSIVE
、PRICE_LEVEL_MODERATE
、PRICE_LEVEL_EXPENSIVE
和 PRICE_LEVEL_VERY_EXPENSIVE
。
priceLevels
过滤器的行为如下:
- 如果未提供任何过滤条件:系统会返回所有地点,无论这些地点是否已分配价格水平。这包括没有价位信息的地方,如果按特定价位过滤,这些地方可能不会返回。
- 如果提供了一个或多个过滤条件:则仅返回与指定价位匹配的地点。
“评分”过滤器
根据地点的平均用户评分过滤地点。这两个字段均为可选字段,因此如果省略,则默认还会包含没有评分的地点。
minRating
:最低平均用户评分(介于 1.0 和 5.0 之间)。maxRating
:最高平均用户评分(介于 1.0 和 5.0 之间)。
此外,minRating
值必须始终小于或等于 maxRating
值。如果将 minRating
指定为大于 maxRating
,则会返回 INVALID_ARGUMENT
错误。