我怎样才能限制谷歌地图商家信息库的自动填充的只有一个城市的地方建议?(How can I restr

2019-06-24 12:38发布

我目前使用给定的代码,但这只是建议限制一个国家。 我见过一个实现,但它的使用jQuery和我想这样做,而无需使用jQuery的。

var input = document.getElementById('searchTextField');
var options = {
    //types: ['(cities)'],
    componentRestrictions: { country: 'pk' }
};
var autocomplete = new google.maps.places.Autocomplete( input, options );

Answer 1:

试着增加bounds属性的options对象要传递给Autocomplete如本代码构造,:

var southWest = new google.maps.LatLng( 25.341233, 68.289986 );
var northEast = new google.maps.LatLng( 25.450715, 68.428345 );
var hyderabadBounds = new google.maps.LatLngBounds( southWest, northEast );

var options = {
    bounds: hyderabadBounds,
    types:  ['establishment [or whatever fits your usage]'],
    componentRestrictions: { country: 'pk' }
};

如果你想Autocomplete边界由地图的当前视口驱动,可以绑定映射到的范围Autocomplete这种方式:

autocomplete.bindTo('bounds', map);

或者,如果它在你的应用程序更好,你也必须明确地设置界限必要时的选项:

autocomplete.setBounds( someOtherBounds );

这可能意味着,您创建一个默认的城市,我Hyberabad没有在上面的例子中。 或者说,你允许你的用户从城市列表中选择启动,然后设置地图视口选择的城市。 该Autocomplete ,如果你只用开始时会提示城市名componentRestrictionscountry 'PK' ,你已经在做。 你会知道什么最适合你的应用程序。

最后,这并不真实,完整地限制Autocomplete ,只是城市,但它会达到您想要尽可能接近目前可能的结果。



Answer 2:

我发现限制或使用自动填充类按国家限制搜索结果的真棒例子,即有一个叫setComponentRestrictions方法,它允许您设置国家(属性),发现这里-https://developers.google.com/maps/文档/ JavaScript的/参照#ComponentRestrictions

请检查https://code.google.com/p/gmaps-samples-v3/source/browse/trunk/places/2012-may-hangout/autocomplete.html?r=290的例子。



Answer 3:

对于多个国家的限制,你可以使用

var options = {
    types: ['(cities)'],
    componentRestrictions: {
        country: ['de','at','ch']
    }
};


文章来源: How can I restrict the Google Maps Places Library's Autocomplete to suggestions of only one city's places?