4

当我遇到一些我没有预料到的事情时,我正在测试组件过滤器:使用过滤器会改善某些查询的结果。我测试的地址是“Avenida de Almirante Reis, 61 C/VD, Lisboa”。

如果没有过滤器,结果将只指向一个地区,而如果我添加一个国家过滤器,它将指向一个确切的地址。

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

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

提前致谢。

4

1 回答 1

1

不,是的。

组件过滤器旨在限制结果,而不是更改它们。您的两个示例现在都只返回该国家/地区,但是这些都有效:

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

但是,请参阅组件过滤文档中的此注释:

注意:每个地址组件只能在地址参数中指定或作为组件过滤器指定,但不能同时指定。这样做可能会导致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

于 2016-06-28T21:12:20.790 回答