如何使用Google Maps逆地理编码获取公寓全量地址及邮编查询方法
逆地理编码获取楼栋内地址及Google Geocode邮编查询方案
核心原因说明
Google Geocoding 及通用逆地理编码服务默认仅返回建筑级以上的公开地址数据,楼内单元、楼层、房间号等细分地址不属于全域公开测绘数据范畴,因此默认接口不会返回该类结果。
1. 逆地理编码获取楼栋下所有潜在地址方案
- 若使用Google体系服务,需搭配Places API实现:通过逆地理编码接口获取目标楼栋的
place_id后,调用Places详情接口查询该点位关联的公开附属地址,若对应楼栋有公开的分层地址数据将同步返回 - 若需要全量楼内地址,需自行维护对应区域的内部地址数据库,通过逆地理返回的楼栋坐标与本地库做匹配返回全量结果
- 注意:多数区域的私有楼内地址数据无合法授权无法批量获取,公共服务仅能返回已公开的附属地址
2. Google Geocode通过邮编查询同楼栋全地址方案
原生邮编查询接口默认返回邮编覆盖的区域级结果,无法直接获取单栋楼全量地址,需按以下步骤调整:
- 调用邮编查询接口时增加
result_type=premise参数,过滤返回该邮编范围内所有建筑级地址结果 - 筛选出目标楼栋的
place_id,再通过上一节的Places接口关联查询该楼栋下的所有潜在地址
现有代码优化参考
function getAddressByPostal(postcode: any, country: any) { axios({ method: 'get', // 新增result_type参数过滤建筑级结果 url: `${API.PostalUrl}${postcode}|country:${country}&result_type=premise&key=${API.API_KEY}`, }).then((res: any) => { // 后续逻辑:提取返回结果中目标楼栋的place_id }) }
function getAddressByCoord(lat: number, lng: number) { axios({ method: 'get', // 新增enable_address_descriptor参数获取更详细的楼栋地址描述 url: `${API.GeocodingUrl}${lat},${lng}&enable_address_descriptor=true&key=${API.API_KEY}`, }).then((res: any) => { // 后续逻辑:读取address_descriptor字段获取关联附属地址 }) }
内容的提问来源于stack exchange,提问作者tim
相关产品推荐
相关产品推荐

