回答

1

文档说明您不能在地址和组件过滤器中使用国家/地区。这样做可能会导致不可预知的行为。

https://developers.google.com/maps/documentation/geocoding/intro#ComponentFiltering

注:每个地址组件只能要么在地址参数或者作为组分滤波器中指定,但是不能同时使用。这样做可能会导致ZERO_RESULTS。

所以,您的查询应该是

https://maps.googleapis.com/maps/api/geocode/json?address=4321&components=country%3ALU&key=YOUR_API_KEY

不知道是什么意思4321如果这是一个邮政编码,我认为这是谷歌从数据库中丢失,因为

https://maps.googleapis.com/maps/api/geocode/json?components=postal_code%3A4321%7Ccountry%3ALU&key=YOUR_API_KEY

返回ZERO_RESULTS。

+0

4321是卢森堡有效的邮编,我不知道为什么谷歌不认识它。这是他们的问题吗? –

+0

您可以使用“报告问题”链接来提出数据问题。 https://support.google.com/maps/answer/162873 希望它有帮助! – xomena

0

不,你没有犯任何大错误;你的API调用应该可以正常工作。我相信这是Google API的一个漏洞,但现在似乎已经修复了。 (当我去the url you asked about时,我得到了一个没有提到美国的正确的JSON响应。)(如果你报告错误,也许你应该得到修复它的功劳!:)

有问题的原因最初是因为Google不是地址验证或标准化服务。解析很困难,原因很多:例如,可能会出现奇怪的拼写或标点符号。 Google非常擅长解析搜索字词。

但是,还有一个额外的问题:我们如何知道哪些部分匹配城市或州? “格鲁吉亚”是美国和一个国家的州。 “12 34 St Helena WA 85102”应该与“34街”相匹配还是名为“圣赫勒拿”的道路?

地址验证是指根据授权数据库(如邮政局数据和国家记录)检查地址,从而导致与真实地点匹配。地址标准化意味着以邮政服务对其进行标准化的方式来格式化地址。

因此,您很可能会在将来遇到更多此类问题,特别是如果您使用的地址不明确。你可能想尝试地址验证服务,特别是如果你正在使用邮件和发货。

公平披露:我是地址验证公司SmartyStreets的雇员。