Карты Google: поиск в определенных странах

У меня есть форма в моем приложении PHP, которая ищет местоположения в Европе: Германия, Франция, Польша, Чехия, Испания, Австрия, Румыния, Италия.

Это мой базовый запрос:

$address = "https://maps.googleapis.com/maps/api/geocode/json?address={$input}";

Если пользователи пытаются найти «Мангейм», например, он должен вернуть Мангейм, Германия.
Вместо этого он возвращает точку в Пенсильвании, США. Я попытался добавить это ограничение компонента адреса: &components=administrative_area:EU, но это ненадежно, потому что вместо нахождения Мангейма в Германии, оно указывает на место в 300 км:

https://www.google.ro/maps/dir/50.5320001,6.6364339/Mannheim/@50.0388399,8.4546225,7.25z/data=!4m8!4m7!1m0!1m5!1m1!1s0x4797cc24518e3f45:0xb1e4fe7aa406e687!2m2!1d8.4660395 ! 2d49.4874592? гектолитров = еп

Если я добавлю , Germany:

$address = "https://maps.googleapis.com/maps/api/geocode/json?address={$input}, Germany";

тогда ответ правильный.

Есть ли способ указать некоторые страны, для которых должен выполняться поиск?

Последнее средство — сделать отдельный поиск для каждой страны, но это будет очень медленно, учитывая ~ 10-12 стран, в которых я ищу.

1

Решение

ограничить результаты поиска Google через ограничение страны, как показано ниже:

var options = {
componentRestrictions: {country: 'DE'}
};

и поместите параметр параметров в автозаполнение или другую функцию, которую вы используете.

var autocomplete = new google.maps.places.Autocomplete(input,options);
0

Другие решения

Других решений пока нет …