Google地理代码API不会过滤卢森堡的搜索结果

时间:2016-11-11 10:55:58

标签: google-maps google-maps-api-3 geocoding google-geocoder geocode

我正在过滤国家/地区代码LU的结果。仍在为美国取得成果

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

我在这里做错了吗?

2 个答案:

答案 0 :(得分:1)

文档说您不能在地址和组件过滤器中使用country。这样做可能会导致无法预测的行为。

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是什么意思。如果这是邮政编码,我认为Google数据库中缺少这个邮政编码,因为

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

返回ZERO_RESULTS。

答案 1 :(得分:0)

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

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

但是,还有一个问题:我们如何知道哪些部分与城市或州相匹配? "佐治亚"是一个美国和一个国家的州。应该" 12 34 St Helena WA 85102"匹配" 34街"或者名为" St Helena"?

的道路

地址验证是指根据权威数据库检查地址,例如邮局数据和国家记录,从而与真实地点匹配。地址标准化意味着以邮政服务标准化的方式格式化地址。

因此,您很可能会在未来遇到更多此类问题,特别是如果您使用的是不明确的地址。您可能想尝试地址验证服务,尤其是在您处理邮寄和运输时。

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