能否通过Google Places API提取指定多边形边界内的所有地点?
关于用Google Places API提取多边形区域地点数据的问题
可以借助Google Places API获取特定多边形范围内的地点数据,但有几个关键限制和合规要求必须注意:
支持的API能力:
Places API的「Search Places」端点(包括Text Search和Nearby Search)允许通过locationRestriction参数指定多边形边界来过滤结果。你可以在请求体中定义多边形的顶点坐标,以此限定搜索范围。无法获取全量数据:
即使使用分页(通过next_page_token获取后续结果),API也无法返回区域内的所有地点。因为搜索结果是按相关性排序,而非全量遍历,且每个请求最多返回20条结果,每日还有查询配额限制。此外,Google的地点数据库本身也不会覆盖所有线下地点。严格的合规限制:
这是最关键的一点——Google Maps Platform服务条款明确禁止将API获取的地点数据批量存储到自有数据库长期使用。你只能将数据用于实时展示或短期缓存(通常不超过30天),如果要长期填充数据库,这种行为会违反许可协议,可能导致API密钥被封禁。请求示例(HTTP POST):
以下是一个指定多边形区域的搜索请求示例:{ "locationRestriction": { "polygon": { "vertices": [ {"latitude": 37.7749, "longitude": -122.4194}, {"latitude": 37.7749, "longitude": -122.4000}, {"latitude": 37.7500, "longitude": -122.4000}, {"latitude": 37.7500, "longitude": -122.4194} ] } }, "keyword": "*" }注意
keyword参数不能留空,用*可匹配大部分地点,但仍会有平台的筛选逻辑。
如果你的核心需求是长期填充自有数据库的区域地点数据,建议考虑其他合规的数据源,或联系Google申请特殊数据许可。
内容的提问来源于stack exchange,提问作者Daniel Jao
相关产品推荐
相关产品推荐

