maps.google.com/maps/api/geocode/json?components=country:AU|postal_code:2010
但是,如果我在谷歌地图中搜索,就能得到结果。我的请求是否有错?
您的请求完全没有问题,但不幸的是,Google在搜索四位邮政编码时出现了问题。这个bug已经在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
希望这有所帮助!
我偶尔也会遇到类似的问题,当对美国邮编进行地理编码时。在邮编后面添加国家名称似乎可以解决这个问题。因此,不要使用60162
,而是使用60162 USA
。
60006
,这也是像60162
一样的伊利诺伊州。根据@levi的建议,添加“USA”后缀,如60006 USA
,解决了这个问题。 - Andrew E