过滤仅一个国家/地区的Google Places API

时间:2018-07-16 18:12:01

标签: javascript google-places-api

遵循发现的指南https://developers.google.com/maps/documentation/javascript/places-autocomplete#places_searchbox,我正在尝试过滤搜索框以仅显示针对英国的建议。

我有代码:

<script src="https://maps.googleapis.com/maps/api/js?key=XXXXXXX&libraries=places&callback=initialize&v=3"
        async defer></script>


<script>

    function initialize() {
        setTimeout(function() {
            initMap();
            initAutocomplete();
        }, 4000);

    }

    function initAutocomplete() {

        var options = {
            types: [],
            componentRestrictions: {country: 'GB' }
        };

        var input = document.getElementById('pac-input');
        var searchBox = new google.maps.places.SearchBox(input, options);

    }

</script>

这可以使搜索框初始化并可用,但它不仅会过滤到英国位置。该框将显示世界各地的位置建议。

使用GB或gb可获得相同的结果

enter image description here

3 个答案:

答案 0 :(得分:4)

最后切换到

function initAutocomplete() {
        var input = document.getElementById('pac-input');
        var options = {
            types: ['(cities)'],
            componentRestrictions: {country: 'GB'}
            };

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

解决了我的问题

答案 1 :(得分:0)

尝试将国家小写:

[![one Post][3]][3]  

答案 2 :(得分:0)

也许尝试setComponentRestrictions方法。

var options = {
  types: []
};

var input = document.getElementById('pac-input');
var searchBox = new google.maps.places.SearchBox(input, options);
// This method.
searchBox.setComponentRestrictions({'country': ['gb']});