javascript - Google map v3 - 限制功能可以工作的区域

标签 javascript google-maps google-maps-api-3

在我使用 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);

}

正确图像:(仅显示意大利南部普利亚的地点) correct image 不正确的图像:(显示许多不同地区的地点) Incorrect

最佳答案

根据documentation ,有 4 种方法可以设置自动完成的偏差和搜索区域边界,它们是
* 设置创建自动完成对象的界限。
* 更改现有自动完成的范围。
* 设置 map 视口(viewport)的边界。
* 将搜索限制在特定国家/地区。

由于前3个选项只会产生偏差,但不会限制结果,因此只能过滤掉其他国家的信息,而不能过滤掉同一国家的城市。

请注意,您也许可以通过使用返回对象来修改结果,但这违反了 ToS。

关于javascript - Google map v3 - 限制功能可以工作的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32210032/

相关文章:

javascript - 在 localStorage 中存储 HTTP Basic 授权 header 是否存在任何安全问题?

JavaScript Json 值基于 equals 条件附加

html - CSS 位置 - 谷歌地图截止

javascript - 谷歌地图未优化标记/fitBounds

javascript - 使用javascript在谷歌地图中绘制多边形

javascript - 从转换字符串中提取不同的 css 转换?

javascript - 悬停时交替显示/隐藏图像 - Mootools

javascript - knockout 功能和谷歌地图

javascript - VueJS Google 放置自动完成功能

javascript - 谷歌地图 API : Map width gets resized onclick but route is still loaded with original width