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



我在测试组件过滤器时遇到了一些意想不到的事情:使用过滤器将改善某些查询的结果。我测试的地址是"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

最新更新