使用Google Map Places API无法获取Zipcode边界,如何实现该功能?
用Google服务获取邮政编码边界的可行方案
Google Places API本身不直接返回邮政编码的边界坐标,但你可以通过以下两种官方服务组合实现,和maps.google.com显示的边界数据源一致:
1. 组合Geocoding API + Place Details API
- 先通过Geocoding API检索邮政编码,拿到对应的
place_id:
发送请求时指定邮政编码为地址参数,比如:
从返回结果里筛选https://maps.googleapis.com/maps/api/geocode/json?address=你的邮政编码&key=你的API密钥types包含postal_code的条目,提取其中的place_id。 - 再用Place Details API获取边界数据:
传入拿到的place_id,并指定只请求geometry字段:
响应里的https://maps.googleapis.com/maps/api/place/details/json?place_id=获取到的place_id&fields=geometry&key=你的API密钥geometry.bounds是该邮政编码的矩形近似边界;部分地区的结果会包含geometry.polygon,这就是maps.google.com上虚线边界的精确坐标集合。
2. 前端直接用Google Maps JavaScript API渲染
如果是在网页上实现,用JavaScript API更高效:
- 调用
google.maps.Geocoder搜索邮政编码,获取地理编码结果。 - 提取结果中的
geometry.bounds做基础边界展示;如果需要精确多边形,就调用Place Details API拿到geometry.polygon,再用google.maps.Polygon组件绘制到地图上,把线条样式设为虚线即可还原maps.google.com的展示效果。
关键注意点
- 部分地区的邮政编码可能只有矩形边界(bounds),没有精确多边形数据。
- 确保你的API密钥已经启用了Geocoding API和Places API,并且遵守Google的配额限制与使用条款。
内容的提问来源于stack exchange,提问作者Anees Masudi
相关产品推荐
相关产品推荐

