在我使用 Google Maps API v3 的 javascript 代码中,我尝试设置自动完成功能的范围,事实上,只要我在输入字段(html)中输入一个字母,它就可以很好地工作,同样的自动完成功能会建议我使用以下地址:可以在边界区域中找到,但是如果我输入超出边界限制的城市名称,我也会得到该城市和其他城市的建议。有办法避免这种情况吗?我只想得到有关我的“界限”的建议。
这是一段代码:
init = function() {
var latlng = new google.maps.LatLng(40.635636, 17.942414);
var mapOptions = { zoom: 13, center: latlng, minZoom: 10, maxZoom: 16};
default_bounds = new google.maps.LatLngBounds();
default_bounds.extend(new google.maps.LatLng(40.635636-0.33, 17.942414-0.33));
default_bounds.extend(new google.maps.LatLng(40.635636+0.33, 17.942414+0.33));
console.log("Initialing map at: 40.635636, 17.942414");
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
originAutocomplete = new google.maps.places.Autocomplete(document.getElementsByName("origin")[0], {types: ['geocode']});
destinationAutocomplete = new google.maps.places.Autocomplete(document.getElementsByName("destination")[0], {types: ['geocode']});
originAutocomplete.setBounds(default_bounds);
destinationAutocomplete.setBounds(default_bounds);
}
最佳答案
根据documentation ,有 4 种方法可以设置自动完成的偏差和搜索区域边界,它们是
* 设置创建自动完成对象的界限。
* 更改现有自动完成的范围。
* 设置 map 视口(viewport)的边界。
* 将搜索限制在特定国家/地区。
由于前3个选项只会产生偏差,但不会限制结果,因此只能过滤掉其他国家的信息,而不能过滤掉同一国家的城市。
请注意,您也许可以通过使用返回对象来修改结果,但这违反了 ToS。
关于javascript - Google map v3 - 限制功能可以工作的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32210032/