了解Google地理编码服务组件过滤器

时间:2013-07-25 14:31:41

标签: google-geocoding-api

当我遇到一些我没想到的东西时,我正在测试组件过滤器:使用过滤器会改善某些查询的结果。我测试的地址是“Avenida de Almirante Reis,61 C / V.D,Lisboa”。

Without the filter结果只会指向某个地区,而如果我add a country filter则会指向一个确切的地址。

这让我怀疑我对过滤器的了解。过滤器应该做的唯一修改是减少答案集,而不是更改,这就是在这种情况下发生的事情。

我想知道这一点,因为我正在使用谷歌的地理编码服务,并且需要解释(在某种程度上)为什么我得到了我得到的结果,这意味着理解这种行为。

提前致谢。

1 个答案:

答案 0 :(得分:0)

不,是的。

组件过滤器旨在限制结果,而不是更改结果。 您的示例现在只返回国家/地区,但这些工作:

http://maps.googleapis.com/maps/api/geocode/json?address=Avenida%20de%20Almirante%20Reis,%2061%20Lisboa http://maps.googleapis.com/maps/api/geocode/json?address=Avenida%20de%20Almirante%20Reis,%2061%20Lisboa&components=country%3aPT

但是,请参阅Component Filtering documentation

中的此注释

注意:每个地址组件只能在地址参数或组件过滤器中指定,但不能同时指定。这样做可能会导致ZERO_RESULTS

似乎可以重复国家,所以第二个链接有效,但根据本说明,最好使用它:

http://maps.googleapis.com/maps/api/geocode/json?address=Avenida%20de%20Almirante%20Reis,%2061&components=country%3aPT

但如果您对街道名称执行相同操作,则会导致ZERO_RESULTS

http://maps.googleapis.com/maps/api/geocode/json?address=Avenida%20de%20Almirante%20Reis,%2061%20Lisboa&components=country%3aPT%7Aroute%3AAvenida%20de%20Almirante%20Reis