2015-10-28 4 views
2

Я пытаюсь отправить пользовательский запрос в API геокодирования Google Maps и ограничить его в странах, в которых моя служба будет работать. Если мне просто нужны результаты из Великобритании, то при поиске quay работает следующий запрос:Как ограничить запрос Google Geocode несколькими странами?

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://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#ComponentFilteringA 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" }

I Мы также попытались изменить компонентную часть в конце URL-адреса на components=country:uk|country:fr. Это, похоже, работает, но все, что он делает, это поиск любого последнего country:value по URL-адресу.

Насколько я могу сказать, мои варианты:

  • Поиск по Великобритании и Франции по отдельности, а затем объединить результаты. Это потребует в два раза больше звонков и будет расти с каждой добавленной страной. Мне также нужно будет определить, как оценивать результаты.
  • Снимите ограничение компонентов, чтобы получить все результаты со всего мира и отфильтровать ответы самостоятельно в Великобритании и Франции. Хорошая вероятность того, что результаты, полученные API Geocoding API, не приведут к показу результатов.

Как я могу сделать один звонок, чтобы вернуть результаты только для Великобритании и Франции? Возможно ли это?

+0

Проверьте этот ответ он помогает мне https://stackoverflow.com/a/42901194/3933302 –

+1

Благодаря @SourabhSharma, Google обновил API так что вы можете это сделать. – Arthur

ответ

Смежные вопросы