首页 > 解决方案 > Openlayers 地图比例线相同的缩放率在公制中重复两次,即使缩放不同

问题描述

Openlayers 公制单位的地图比例线具有特定的缩放率,在缩放时重复两次,即使实际放大分辨率在地图中有所不同。

https://openlayers.org/en/latest/examples/scale-line.html 正如您在链接中看到的那样,对于两个不同的缩放级别,缩放率 5km 和 5m 重复了两次

我如何在视图中声明我的缩放率。

var viewLayer = new ol.View({
            center: [0, 0],
            zoom: 10,
            minZoom: 15,
            maxZoom: 24,
            resolution: 0.2,
            minResolution: 0.0125,
            maxResolution: 6.4
        });

比例线控制声明为

var scaleLineControl = new ol.control.ScaleLine({
            minWidth: 100,
            units: 'metric'
        });

上述声明范围从 1000m 到 1m - 5m 以公制单位重复两次

标签: javascripttypescriptzoomingopenlayers

解决方案


为避免重复,您必须使用分辨率数组来匹配刻度线间隔

刻度线间隔是这样固定的

5000, 2000, 1000, 500, 200, 100, 50, 20, 10, 5, 2, 1

例如,如果您不使用分辨率数组,OpenLayers 会在最小值和最大值之间以均匀的间隔修复 rsolutions

4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1

所以(在那种情况下)你将有两个分辨率,它们在比例线上介于 2000 和 5000 之间


推荐阅读