javascript - 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 以公制单位重复两次
解决方案
为避免重复,您必须使用分辨率数组来匹配刻度线间隔
刻度线间隔是这样固定的
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 之间
推荐阅读
- installation - Octave:在 Windows 上安装软件包时出错
- r - 为什么会出现“下标越界错误”?在 R
- java - 在 jndi 中编写绑定代码及其抛出空指针异常我不确定配置有什么问题
- java - 如何计算整数对的多米诺链?
- java - 设置 swagger.ui.html 的基本路径
- javascript - 用javascript制作游戏,位置没有正确更新
- python - 对字典中的键使用不可变数据类型
- nix - 选择文件列表作为构建输入
- angular - 将值设置为 FormControl Angular 6
- ios - 努力将 NSArray 解析为带分隔符的字符串以快速生成 QR 码