OL3 自定义 proj/resolutions 和 minZoom/maxZoom
OL3 Custom proj/resolutions and minZoom/maxZoom
在非 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 与地图缩放级别一致。
但是除了 'resolutions'.
之外,我还试图限制我在视图选项中设置 'minZoom' 和 'maxZoom' 的缩放级别
如果 minZoom = 0 和 maxZoom = 8,我仍然可以缩放 12 个级别并且地图缩放与调用的底图 tilematrix 一致。
如果 minZoom = 4 且 maxZoom = 9,我可以缩放超过 12 个级别...但是
- 地图缩放级别从 4 开始增加到 15(初始缩放级别的变化 = ol.View 中设置的 minZoom)
- 底图图块矩阵现在与地图缩放不一致:在地图缩放 4 时,它请求底图缩放级别 0(不对底图调用应用偏移)
谢谢!
由于 minZoom 和 maxZoom 在分辨率方面存在问题,我建议您向事件 "change:resolution" 添加自定义行为,如下所示:
map.getView().on('change:resolution', function(e) {
// Set Zoom
});
我已经编辑了你的jsfiddle
在非 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
中使用 matrixidsvar matrixids= [0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ,10 ,11];
地图没问题 有 12 个缩放级别可用。底图矩阵 ID 与地图缩放级别一致。
但是除了 'resolutions'.
之外,我还试图限制我在视图选项中设置 'minZoom' 和 'maxZoom' 的缩放级别如果 minZoom = 0 和 maxZoom = 8,我仍然可以缩放 12 个级别并且地图缩放与调用的底图 tilematrix 一致。
如果 minZoom = 4 且 maxZoom = 9,我可以缩放超过 12 个级别...但是
- 地图缩放级别从 4 开始增加到 15(初始缩放级别的变化 = ol.View 中设置的 minZoom)
- 底图图块矩阵现在与地图缩放不一致:在地图缩放 4 时,它请求底图缩放级别 0(不对底图调用应用偏移)
谢谢!
由于 minZoom 和 maxZoom 在分辨率方面存在问题,我建议您向事件 "change:resolution" 添加自定义行为,如下所示:
map.getView().on('change:resolution', function(e) {
// Set Zoom
});
我已经编辑了你的jsfiddle