Javascript 限制谷歌地图上的滚轮缩放级别

Javascript 限制谷歌地图上的滚轮缩放级别,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我有下面的代码,应该限制在我的地图缩放。手动单击地图控件的放大和缩小按钮(加号和减号)时,缩放受到限制。当我使用滚轮进行缩放时,这种情况不会发生。如何限制滚轮应用的缩放级别?我不想通过滚轮取消缩放功能 function initMap() { var map = new google.maps.Map(document.getElementById('map'), { zoom: 12, center: {lat: 52.520008, lng: 13.4

我有下面的代码,应该限制在我的地图缩放。手动单击地图控件的放大和缩小按钮(加号和减号)时,缩放受到限制。当我使用滚轮进行缩放时,这种情况不会发生。如何限制滚轮应用的缩放级别?我不想通过滚轮取消缩放功能

function initMap() {
    var map = new google.maps.Map(document.getElementById('map'), {
        zoom: 12,
        center: {lat: 52.520008, lng: 13.404954},
    });

    var old_zoom_level = 12;
    map.data.loadGeoJson('data/1000_berlin_buildings.json');
    //map.data.loadGeoJson('google.json');

    map.data.setStyle(styleFeature);
    map.data.addListener('mouseover', mouseInToRegion);
    map.data.addListener('mouseout', mouseOutOfRegion);

    map.addListener('bounds_changed', function(){
        //console.log("bounds changed");
    });

    google.maps.event.addListener(map, 'zoom_changed', function () {
        // if (map.getZoom() < 9) map.setZoom(9);
        var new_zoom_level = map.getZoom();
        console.log("zoom Changed from "+ old_zoom_level +" to "+new_zoom_level);

        if (new_zoom_level < __min_zoom_level) {
            new_zoom_level = __min_zoom_level;
            map.setZoom(__min_zoom_level);
        }
        if (new_zoom_level > __max_zoom_level) {
            new_zoom_level = __max_zoom_level;
            map.setZoom(__max_zoom_level);
        }
        old_zoom_level = new_zoom_level;
    });

}
函数initMap(){
var map=new google.maps.map(document.getElementById('map'){
缩放:12,
中心:{lat:52.520008,lng:13.404954},
});
var old_zoom_level=12;
map.data.loadGeoJson('data/1000_berlin_buildings.json');
//map.data.loadGeoJson('google.json');
map.data.setStyle(styleFeature);
map.data.addListener('mouseover',mouseInToRegion);
map.data.addListener('mouseout',mouseOutOfRegion);
addListener('bounds_changed',function(){
//console.log(“边界已更改”);
});
google.maps.event.addListener(映射'zoom_changed',函数(){
//if(map.getZoom()<9)map.setZoom(9);
var new_zoom_level=map.getZoom();
console.log(“缩放从“+旧缩放级别+”更改为“+新缩放级别”);
如果(新的缩放级别<最小缩放级别){
新的缩放级别=\uuuuuuMin\uZoom\uLevel;
map.setZoom(uu min_zoom_level);
}
如果(新的缩放级别>最大缩放级别){
新的缩放级别=\uuuuuu最大缩放级别;
map.setZoom(uu max_zoom_level);
}
旧的缩放级别=新的缩放级别;
});
}

通过使用map
minZoom
maxZoom
属性,您可以更轻松地完成此操作

var map = new google.maps.Map(document.getElementById('map-canvas'), {
    zoom: 12,
    center: {lat: 52.520008, lng: 13.404954},
    minZoom: 10,
    maxZoom: 14
});
如果需要在任何时候更改这些值,只需使用map
setOptions()
方法:

map.setOptions({
  minZoom: 8,
  maxZoom: 15
});
工作代码段:

var映射;
函数初始化(){
var map=new google.maps.map(document.getElementById('map-canvas'){
缩放:12,
中心:{
拉脱维亚:52.520008,
液化天然气:13.404954
},
minZoom:10,
maxZoom:14,
});
google.maps.event.addDomListener(document.getElementById('btn'),'click',function(){
map.setOptions({
minZoom:5,
最大缩放:15
});
})
}
初始化()
#地图画布{
高度:150像素;
}
#btn{
边缘顶部:10px;
线高:30px;
背景:黄色;
光标:指针;
}

将限制更改为最小值:5和最大值:15

你发布的代码不起作用。@Upsidown先生,你能解释一下什么对你不起作用吗?我看到我对map.setZoom()进行了注释,但我用那些未注释的行对其进行了测试。我编辑了示例代码,您需要发布最小的代码来重现问题以及清晰的问题陈述和所需的行为<未定义代码>最小缩放级别
等。因此,我无法按原样运行您的代码。也就是说,执行上述操作时的行为有点奇怪。。。如果使用
bounds\u changed
事件,它似乎可以工作。但无论如何,在我看来,你不应该这样做。我会发布一个答案。