1

除了非 webmercator 地图中的分辨率之外,使用 ol.view minZoom 和 maxZomm 可以吗?minZoom 和 maxZoom 真的被忽略了吗?或者他们会造成麻烦吗?

我有我无法弄清楚的行为。这是我的问题:

我使用 WMTS 服务 (EPSG:2154) 作为 ol3 地图中的底图(EPSG:2154 也是)。我将视图分辨率和 ol.tilegrid.WMTS 分辨率设置为:

var resolutions = [305.748084412797, 152.87417449832975, 76.43695495723364, 38.21860977054807, 19.109304885274035, 9.554652442637018, 4.777326221318509, 2.3886631106592544, 1.1943315553296272, 0.5971657776648136, 0.2984505969011562, 0.13229193125051253 ];

并在 ol.tilegrid.WMTS 中​​使用 matrixids

var matrixids= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ,10 ,11];

地图还可以 12 个缩放级别可用。底图矩阵 ID 与地图缩放级别一致。

但是试图限制缩放级别,除了“分辨率”之外,我还在视图选项中设置了“minZoom”和“maxZoom”。

如果 minZoom = 0 和 maxZoom = 8,我仍然可以放大 12 个级别,并且地图缩放与调用的底图 tilematrix 一致。

如果 minZoom = 4 和 maxZoom = 9,我可以放大 12 个级别...但是

  • 地图缩放级别从 4 开始,一直到 15(从初始缩放级别的偏移 = ol.View 中设置的 minZoom)
  • 底图 tilematrix 现在与地图缩放不一致:在地图缩放 4 时,它请求底图缩放级别 0(未应用于底图调用的移位)

谢谢 !

4

1 回答 1

0

由于 minZoom 和 maxZoom 在分辨率方面存在问题,我建议您向事件“change:resolution”添加自定义行为,如下所示:

map.getView().on('change:resolution', function(e) {
    // Set Zoom
});

我已经编辑了你的jsfiddle

于 2017-01-12T09:22:32.903 回答