12

如何在不发出另一个请求的情况下过滤 Google Geocode API 的结果和两个(或多个)国家/地区的 components 参数的使用。

例子:

  • http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&components=country:DE,AT&address=wien
    给出零结果,因为在德国没有 Wien 并且逗号后的 AT 被忽略
  • http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&components=country:AT,DE&address=wien
    可以,因为奥地利有维也纳
  • http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&components=country:AT|country:DE&address=wien
    给出零结果,因为两个组件过滤器相互排斥

我过度阅读的文档中是否有一些东西使它成为可能,或者我根本无法做到?

编辑

我尝试了一种解决方法来设置德国和奥地利的合并边界,但这只是权衡结果而不是过滤它们,所以我得到了一个我不想要的结果http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&components=bounds:55.058,17.161|46.372,5.866&address=new%20york。在这种情况下,我想要一个 ZERO_RESULTS 状态。

4

1 回答 1

1

目前这是不可能的。如果您想看到这种情况发生,请投票给issue #4233 。

暂时我可以建议三种可能的解决方法,但没有一个是完美的:

  1. 发出多个请求并手动合并结果集。这将提供最好的准确性,但显然是最慢的。
  2. 在 HerrSerker 的问题中使用手动合并边界技巧,然后手动过滤掉带有 ashort_nameaddress_components元素不在您的国家列表中的结果typescountry
  3. 完全删除组件过滤器,并在搜索字符串中包含“Austria OR Germany”。同样,您需要手动过滤结果。
于 2015-01-02T02:56:58.683 回答