【发布时间】:2016-12-21 20:35:32
【问题描述】:
我目前正在使用带有 4 个缩放级别的平铺地图 (ol.layer.Tile) 的 OL3。我希望缩放更敏感,并允许 8 个缩放级别而不是 4 个,每个平铺级别每个 2 个。有什么想法吗?
【问题讨论】:
标签: openlayers-3
我目前正在使用带有 4 个缩放级别的平铺地图 (ol.layer.Tile) 的 OL3。我希望缩放更敏感,并允许 8 个缩放级别而不是 4 个,每个平铺级别每个 2 个。有什么想法吗?
【问题讨论】:
标签: openlayers-3
根据docs,您可以使用 View 对象中的多个属性来管理缩放设置:
- maxResolution:用于确定分辨率约束的最大分辨率。它与 minResolution 一起使用(或 最大缩放)和缩放因子。如果未指定,则以这种方式计算 投影的有效性范围适合 256x256 像素的图块。如果 投影是球形墨卡托(默认),然后是 maxResolution 默认为 40075016.68557849 / 256 = 156543.03392804097。
- minResolution:用于确定分辨率约束的最小分辨率。它与 maxResolution 一起使用(或 minZoom) 和 zoomFactor。如果未指定,则假设为 29 缩放级别(系数为 2)。如果投影是球形的 墨卡托(默认)然后 minResolution 默认为 40075016.68557849 / 256 / Math.pow(2, 28) = 0.0005831682455839253。
- maxZoom:用于确定分辨率限制的最大缩放级别。它与 minZoom 一起使用(或 最大分辨率)和缩放因子。默认值为 28。请注意,如果 还提供了 minResolution,它优先于 maxZoom。
- minZoom:用于确定分辨率约束的最小缩放级别。它与 maxZoom (或 minResolution) 和 缩放因子。默认值为 0。请注意,如果还提供了 maxResolution, 它优先于 minZoom。
- zoomFactor:用于确定分辨率约束的缩放系数。默认为 2。
为 XYZ 源的每个平铺网格缩放级别获取 2 个视图缩放级别的示例:
var source = new ol.source.XYZ({
// your source configuration here
});
var resolutions = source.getTileGrid().getResolutions();
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: source
})
],
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 0,
maxResolution: resolutions[0],
minResolution: resolutions[resolutions.length-1],
zoomFactor: 1.5
})
});
【讨论】: