OL3自定义项目/分辨率和minZoom / maxZoom

时间:2017-01-10 22:32:37

标签: openlayers-3 epsg

除了非webmecator地图中的分辨率外,还使用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(没有应用于底图调用的移位)

谢谢!

1 个答案:

答案 0 :(得分:0)

由于minZoom和maxZoom会出现分辨率问题,我建议您为事件添加自定义行为"更改:分辨率"如下:

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

我已修改了您的jsfiddle