如何通过Mapbox API获取指定邮政编码下的地址列表
Mapbox 邮政编码对应全量地址查询解决方案
Mapbox 正向地理编码 API 本身不支持直接通过邮政编码查询对应范围内的全量地址列表,这是产品功能定位导致的,你遇到的返回结果符合接口的设计逻辑。
两次调用返回异常的原因
- 当
types参数设为postcode时,接口的返回结果设计为仅包含邮政编码对应的区域中心点、边界、所属行政层级等元信息,本身就不会返回下辖的地址列表。 - 当
types参数设为address时,接口会将传入的邮政编码字符串当作地址文本做精确匹配,邮政编码本身不属于address类型的POI分类,因此返回空数组。
可行替代方案
场景1:仅需在指定邮编范围内匹配具体地址
如果你是搭配地址关键词做邮编范围内的地址检索,可以先调用types=postcode的接口拿到目标邮编的bbox边界参数,再将边界作为筛选条件传入地址检索请求,示例请求如下:
https://api.mapbox.com/geocoding/v5/mapbox.places/${postcode}%20${address_keyword}.json?types=address&bbox=${postcode_bbox}&access_token=${mapboxToken}
该方式可以限定地址匹配的范围仅在目标邮政编码对应的区域内,返回的结果均属于该邮编范围。
场景2:需要获取目标邮编下的全量地址列表
如果你需要拉取指定邮编下的全量地址数据,Mapbox 正向地理编码 API 不提供该能力,可采用以下方案实现:
- 调用
types=postcode的接口获取目标邮编的矢量边界数据 - 对你自有地址库中的所有地址做空间匹配,筛选出落在该邮编边界内的地址即可。
注意:不同国家/地区的邮编级地址数据覆盖度存在较大差异,部分偏远区域本身没有细粒度地址入库,这类区域无法检索到对应的地址数据。
内容的提问来源于stack exchange,提问作者Przemek Baj
相关产品推荐
相关产品推荐

