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

时间:2018-05-08 00:58:07

标签: google-maps google-geocoding-api

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

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

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

3 个答案:

答案 0 :(得分:3)

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

4-digit postal codes are hard to geocode (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

我希望这会有所帮助!

答案 1 :(得分:1)

在对美国邮政编码进行地理编码时,我经常遇到类似的问题。在邮政编码后加上国家/地区名称似乎可以解决此问题。因此,请使用60162而不是60162 USA

答案 2 :(得分:0)

根据其IP上下文在浏览器中打开URL时,它会识别国家/地区并自动推断出邮政编码的查询格式为99.999-99。

以上格式适用于巴西,但每个国家(例如美国和葡萄牙)都有不同的标准。

一种通过CURL通过代码或终端调用API的解决方案,包括“ &components = country:US ”参数,将“ US”国家/地区代码更改为您要过滤的内容

出于安全考虑,Google API会返回ZERO_RESULTS,因为搜索速度太慢,并且可能会在全球范围内(不仅限于国家/地区)进行全局搜索。出于性能和速度方面的考虑,Google创建了此自动ID来寻求帮助,但是很遗憾,该过程并未提供给开发人员。

祝你好运!

enter image description here