我目前使用给定的代码,但这只是建议限制一个国家。 我见过一个实现,但它的使用jQuery和我想这样做,而无需使用jQuery的。
var input = document.getElementById('searchTextField');
var options = {
//types: ['(cities)'],
componentRestrictions: { country: 'pk' }
};
var autocomplete = new google.maps.places.Autocomplete( input, options );
试着增加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
,如果你只用开始时会提示城市名componentRestrictions
的country 'PK'
,你已经在做。 你会知道什么最适合你的应用程序。
最后,这并不真实,完整地限制Autocomplete
,只是城市,但它会达到您想要尽可能接近目前可能的结果。
我发现限制或使用自动填充类按国家限制搜索结果的真棒例子,即有一个叫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的例子。
对于多个国家的限制,你可以使用
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?