Подтвердить что ты не робот

Google Места АвтозаполнениеСервисная фильтрация по странам

Я настраиваю собственное поле автозаполнения, где я показываю местоположения из Google Адресов и событий из моей базы данных, которые соответствуют поисковому запросу. По этой причине я использую службу автозаполнения Google Адресов, чтобы получить прогнозы запросов, а не подключать автозаполнение мест непосредственно к моему текстовому полю.

Проблема заключается в том, что я не могу понять, как фильтровать предложения автозаполнения мест по странам, используя службу автозаполнения.

Я пробовал:

var service = new google.maps.places.AutocompleteService(null, {
        types: ['cities'],
        componentRestrictions: {country: "au"}
    });

но он по-прежнему показывает варианты автозаполнения из Германии и Франции: (

Любые предложения?

4b9b3361

Ответ 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