我需要在某些级别(5-19)之间保持缩放级别,并且不允许用户进一步放大/缩小。我已尝试设置视图的minZoom / maxZoom属性,以及minResolution / maxResolution,但它似乎无法正常工作。
以下是代码:
map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM( {crossOrigin: null} )
})
],
target: 'map',
controls: ol.control.defaults({
attributionOptions: ({
collapsible: false
})
}),
view: new ol.View({
center: [0, 0],
zoom: 5,
minZoom: 5,
maxZoom: 19,
minResolution: 4891.96981025128,
maxResolution: 39135.75848201024,
projection: new ol.proj.get("EPSG:900913")
})
});
我只使用minZoom / maxZoom的设置尝试了它,只需使用minResolution / maxResolution或所有这些设置......没有任何反应,我可以进一步缩放。
编辑:它是"缩放:5",不是"缩放:2"在上面的代码中。
答案 0 :(得分:3)
view: new ol.View({
center: [0, 0],
zoom: 5,
minZoom: 5,
maxZoom: 19,
minResolution: 4891.96981025128,
maxResolution: 39135.75848201024,
projection: new ol.proj.get("EPSG:900913")
})
将缩放参数更改为5或更多。它会解决你的问题。
答案 1 :(得分:2)
尝试将 maxResolution 属性添加到map元素中的ol.view。
` view: new ol.View({
center: ol.proj.transform([20.6031834, 48.6325657], 'EPSG:4326', 'EPSG:3857'),
zoom: 11,
maxResolution: 4000
})`
简易地图示例
var map = new ol.Map({
layers: [map, satMap],
target: 'map',
controls: ol.control.defaults({
attributionOptions: ({
collapsible: false
})
}),
view: new ol.View({
center: ol.proj.transform([20.6031834, 48.6325657], 'EPSG:4326', 'EPSG:3857'),
zoom: 11,
maxResolution: 4000
})
});