Google Места АвтозаполнениеСервисная фильтрация по странам
Я настраиваю собственное поле автозаполнения, где я показываю местоположения из Google Адресов и событий из моей базы данных, которые соответствуют поисковому запросу. По этой причине я использую службу автозаполнения Google Адресов, чтобы получить прогнозы запросов, а не подключать автозаполнение мест непосредственно к моему текстовому полю.
Проблема заключается в том, что я не могу понять, как фильтровать предложения автозаполнения мест по странам, используя службу автозаполнения.
Я пробовал:
var service = new google.maps.places.AutocompleteService(null, {
types: ['cities'],
componentRestrictions: {country: "au"}
});
но он по-прежнему показывает варианты автозаполнения из Германии и Франции: (
Любые предложения?
Ответы
Ответ 1
Вам необходимо передать ограничения при вызове службы, а не при ее создании. Здесь:
//create service
service = new google.maps.places.AutocompleteService();
//perform request. limit results to Australia
var request = {
input: 'Brisbane',
componentRestrictions: {country: 'au'},
};
service.getPlacePredictions(request, callback);
Ответ 2
Вы можете указать типы и componentRestrictions с помощью AutocompletionRequest. Вот пример -
var service = new google.maps.places.AutocompleteService();
service.getPlacePredictions({ input: query, types: ['geocode'],
componentRestrictions:{ country: 'us' } },
function (predictions, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
var results = document.getElementById('results');
for (var i = 0, prediction; prediction = predictions[i]; i++) {
results.innerHTML += '<li>' + prediction.description + '</li>';
}
}
});
Ответ 3
Как указано в документации reference, Библиотека мест AutocompleteService
не поддерживает AutocompleteOptions. Если вы считаете, что это будет ценная функция, напишите Places API - Feature Feature.
Ответ 4
Вы должны использовать этот код.
var options = {
types: ['(cities)'],
componentRestrictions: {country: ["in"]}
}
//Find From location
var input= document.getElementById('input_box_city');
var fromAuto = new google.maps.places.Autocomplete(input, options);
Ответ 5
Используйте этот рабочий код
var input = document.getElementById("query_value");
var autocomplete = new google.maps.places.Autocomplete(input, {
componentRestrictions: { country: "IN" },
place_id: "YOUR_PLACE_ID"
});
google.maps.event.addListener(autocomplete, "place_changed", function() {
var place = autocomplete.getPlace();
});
https://maps.googleapis.com/maps/api/js?sensor=false&libraries=places&language=en&key=YOUR_KEY