如何将Google地理编码查询限制为多个国家/地区?

时间:2015-10-28 10:01:21

标签: google-geocoder google-geocoding-api

我正在尝试将用户查询发送到Google Maps Geocoding API,并将其限制为我的服务将在其中运营的国家/地区。如果我只想要来自英国的结果,那么以下查询在搜索{{ 1}}:

quay

如果我想将结果限制在法国,那么以下工作:

https://maps.googleapis.com/maps/api/place/autocomplete/json?key=$apiKey&input=quay&language=en-gb&location=0,0&radius=50000&components=country:uk

根据https://developers.google.com/maps/documentation/geocoding/intro#ComponentFiltering https://maps.googleapis.com/maps/api/place/autocomplete/json?key=$apiKey&input=quay&language=en-gb&location=0,0&radius=50000&components=country:uk所以为了搜索英国和法国,我认为以下内容可行:

A filter consists of a list of component:value pairs separated by a pipe (|).

但它没有,而是返回以下内容:

https://maps.googleapis.com/maps/api/place/autocomplete/json?key=$apiKey&input=quay&language=en-gb&location=0,0&radius=50000&components=country:uk|fr

我还尝试将网址末尾的组件更改为{ "predictions": [], "status": "INVALID_REQUEST" }。这似乎有效,但它所做的只是搜索URL上的最后components=country:uk|country:fr

据我所知,我的选择是:

  • 分别搜索英国和法国,然后合并结果。这将需要两倍的呼叫,并将添加每个国家。我还需要确定如何对结果进行加权。
  • 删除组件限制,以便我从世界各地获得所有结果,并自行将答案过滤到英国和法国。 Geocoding API返回的结果很可能无法显示结果。

我如何拨打一个电话才能将结果仅限于英国和法国?这甚至可能吗?

1 个答案:

答案 0 :(得分:2)

目前无法在1次通话中使用此功能,请参阅https://code.google.com/p/gmaps-api-issues/issues/detail?id=4233