如何将地图的滚动限制为图层的大小(ImageStatic)?

时间:2016-02-24 14:58:32

标签: openlayers-3

我认为一切都在问题中,我正在寻找一种方法将地图的可滚动区域固定为其图层的大小。

在我的情况下,我使用的静态图像宽度为2722像素,高度为3850像素。

我也检查了“范围”属性,但为了我的目的,我无法真正理解如何使其工作。

就是这样,不能等待一些线索或其他答案:)

度过愉快的一天。代码。

编辑:

var extent = [0, 0, 2722, 3850];
var projection = new ol.proj.Projection({
    code: 'xcd-image',
    units: 'pixels',
    extent: extent
});

var map = new ol.Map({
    interactions: ol.interaction.defaults({mouseWheelZoom: false, doubleClickZoom: false}),
    layers: [
      new ol.layer.Image({
        source: new ol.source.ImageStatic({
          url: 'http://www.tarsis.paris/bundles/tarsisfront/carte.png',
          projection: projection,
          imageExtent: extent
        })
      })
    ],
    controls: [],
    target: 'map',
    view: new ol.View({
      projection: projection,
      center: ol.extent.getCenter(extent),
      zoom: 3
    })
});

1 个答案:

答案 0 :(得分:0)

OpenLayers尚不支持您希望实现的目标。请参阅其中一位OL开发人员的this answer

正如上面引用的问题中的注释所示,您可以通过添加minZoom参数来限制缩放级别。您必须更改代码的这一部分:

controls: [],
target: 'map',
view: new ol.View({
  projection: projection,
  center: ol.extent.getCenter(extent),
  zoom: 3
})

到此:

target: 'map',
view: new ol.View({
  projection: projection,
  center: ol.extent.getCenter(extent),
  zoom: 3,
  minZoom: 2
})