Google地理编码API会为邮政编码返回ZERO_RESULTS

ShI*_*tan 6 google-maps google-geocoding-api

我正在尝试使用Google maps API对用户输入的数据进行地理编码,并因澳大利亚邮政编码"2010"而出错

maps.google.com/maps/api/geocode/json?components=country:AU|postal_code:2010

但是,如果我在Google地图中搜索,我会得到一个结果.我在请求中做错了吗?

xom*_*ena 6

您的请求完全没问题,但不幸的是,Google 在搜索 4 位邮政编码时遇到问题。此错误已在 Google 问题跟踪器中报告,您可以在此处查看:

4 位邮政编码难以进行地理编码(AT、AU、BE、DK、NZ、SI)

我建议为该错误加星标以添加您的投票并订阅来自 Google 的进一步通知。

您还可以看到 Google 建议的解决方法是使用带有类型(region)和国家/地区组件过滤器的场所自动完成请求。

因此,在您的情况下,您可以运行以下查询

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=2010&types=(regions)&components=country%3AAU&key=YOUR_API_KEY

它将返回邮政编码 2010 的地点 ID:ChIJ3QyubXuuEmsREIe6P2t9ARw

您可以使用带有地点 ID 的地理编码来获取所需信息

https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJ3QyubXuuEmsREIe6P2t9ARw&key=YOUR_API_KEY

我希望这有帮助!


lev*_*evi 4

在对美国邮政编码进行地理编码时,我定期遇到类似的问题。在邮政编码后面附加国家/地区名称似乎可以解决该问题。因此,不要60162使用60162 USA.

  • 我在某些邮政编码上遇到过这个问题,例如“60006”,它恰好也是伊利诺伊州的“60162”。按照@levi的建议,附加“USA”,如`60006 USA`已经解决了这个问题。 (3认同)