我在测试组件过滤器时遇到了一些意想不到的事情:使用过滤器将改善某些查询的结果。我测试的地址是"Avenida de Almirante Reis,61 C/V.D,Lisboa"。
如果没有过滤器,结果将只指向Locality,而如果我添加一个国家/地区过滤器,它将指向一个确切的地址。
这让我怀疑我对过滤器的了解。过滤器应该做的唯一修改是减少答案集,而不是更改,这就是在这种情况下发生的情况。
我想知道这一点,因为我正在使用谷歌的地理编码服务,需要(在一定程度上)解释为什么我会得到我得到的结果,这意味着理解这种行为。
提前谢谢。
否和是。
组件过滤器旨在限制结果,而不是更改结果。你的两个例子现在都只返回了这个国家,但这些都有效:
http://maps.googleapis.com/maps/api/geocode/json?address=Avenida%20de%20Almirante%20Reis,%2061%20里斯本http://maps.googleapis.com/maps/api/geocode/json?address=Avenida%20de%20Almirante%20Reis,%2061%20Lisboa&组件=国家%3aPT
但是,请参阅组件筛选文档中的注释:
注意:每个地址组件只能在地址参数中指定或作为组件筛选器指定,但不能同时指定。这样做可能导致ZERO_RESULTS
。
重复国家似乎可以,所以第二个链接有效,尽管根据这个注释,最好使用这个:
http://maps.googleapis.com/maps/api/geocode/json?address=Avenida%20de%20Almirante%20Reis,%2061&组件=国家%3aPT
但如果你对街道名称也这样做,它确实会导致ZERO_RESULTS
:
http://maps.googleapis.com/maps/api/geocode/json?address=Avenida%20de%20Almirante%20Reis,%2061%20Lisboa&组件=国家%3aPT%7路线%3Avenida%20de%20Almirante%20Reis