Я пытаюсь отправить пользовательский запрос в 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, не приведут к показу результатов.
Как я могу сделать один звонок, чтобы вернуть результаты только для Великобритании и Франции? Возможно ли это?
Проверьте этот ответ он помогает мне https://stackoverflow.com/a/42901194/3933302 –
Благодаря @SourabhSharma, Google обновил API так что вы можете это сделать. – Arthur