【问题标题】:Understading google geocoding service component filters了解谷歌地理编码服务组件过滤器
【发布时间】:2013-07-25 14:31:41
【问题描述】:

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

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

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

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

提前致谢。

【问题讨论】:

  • 这可能与区域偏差有关吗?

标签: google-geocoding-api


【解决方案1】:

不是和是的。

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

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

重复国家似乎没问题,所以第二个链接有效,尽管根据this note最好使用这个:

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-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    相关资源
    最近更新 更多