Openlayers 3 - 限制地图上可能的缩放级别

时间:2016-03-09 12:06:04

标签: zoom openlayers-3

我需要在某些级别(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"在上面的代码中。

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

        })
    });