У меня есть форма в моем приложении PHP, которая ищет местоположения в Европе: Германия, Франция, Польша, Чехия, Испания, Австрия, Румыния, Италия.
Это мой базовый запрос:
$address = "https://maps.googleapis.com/maps/api/geocode/json?address={$input}";
Если пользователи пытаются найти «Мангейм», например, он должен вернуть Мангейм, Германия.
Вместо этого он возвращает точку в Пенсильвании, США. Я попытался добавить это ограничение компонента адреса: &components=administrative_area:EU,
но это ненадежно, потому что вместо нахождения Мангейма в Германии, оно указывает на место в 300 км:
Если я добавлю , Germany
:
$address = "https://maps.googleapis.com/maps/api/geocode/json?address={$input}, Germany";
тогда ответ правильный.
Есть ли способ указать некоторые страны, для которых должен выполняться поиск?
Последнее средство — сделать отдельный поиск для каждой страны, но это будет очень медленно, учитывая ~ 10-12 стран, в которых я ищу.
ограничить результаты поиска Google через ограничение страны, как показано ниже:
var options = {
componentRestrictions: {country: 'DE'}
};
и поместите параметр параметров в автозаполнение или другую функцию, которую вы используете.
var autocomplete = new google.maps.places.Autocomplete(input,options);
Других решений пока нет …