Я пытаюсь отправить пользовательский запрос в Google Maps Geocoding API и ограничить его странами, в которых будет работать мой сервис. Если мне нужны результаты только из Великобритании, то при поиске 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://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 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
. Кажется, это работает, но все, что он делает, это ищет последние country:value
в URL-адресе.
Насколько я могу судить, мои варианты:
- Найдите отдельно Великобританию и Францию, а затем объедините результаты. Это потребует в два раза больше звонков и будет увеличиваться с каждой добавленной страной. Мне также нужно будет определить, как взвешивать результаты.
- Снимите ограничение на компоненты, чтобы я получал все результаты со всего мира, и самостоятельно фильтруйте ответы по Великобритании и Франции. Существует большая вероятность того, что результаты, возвращаемые API геокодирования, не будут отображаться.
Как я могу сделать один звонок, чтобы вернуть результаты только для Великобритании и Франции? Это вообще возможно?