Openlayers 地图比例线相同的缩放率在公制中重复两次,即使缩放不同
Openlayers map scale line same zoom rate repeated twice in metric even-though the zoom differs
Openlayers 公制单位的地图比例线在缩放时具有重复两次的特定缩放率,尽管地图的实际缩放分辨率不同。
https://openlayers.org/en/latest/examples/scale-line.html 正如您在 link 中看到的,对于两个不同的缩放级别,缩放率 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 以公制单位重复两次
您可以为 view 提供分辨率数组。请注意,如文档中所述:
If set the maxResolution, minResolution, minZoom, maxZoom, and
zoomFactor options are ignored
但这并不是很干净,因为您需要提供较大步长的分辨率以避免缩放时比例线值相同。
实际上,出于可读性原因,这是为了像这样工作。值相同但刻度线宽度不同,所以这不是真正的问题,对吗?
传递给视图的分辨率和比例线的 minWidth 之间的混合也应该可以完成这项工作,但同样,这将只是自制的 hacks,这不是 OpenLayers-5 中的任何参数来实现你想要的想做!
为避免重复,您必须使用分辨率数组来匹配刻度线间隔
刻度线间隔是这样固定的
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 之间
Openlayers 公制单位的地图比例线在缩放时具有重复两次的特定缩放率,尽管地图的实际缩放分辨率不同。
https://openlayers.org/en/latest/examples/scale-line.html 正如您在 link 中看到的,对于两个不同的缩放级别,缩放率 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 以公制单位重复两次
您可以为 view 提供分辨率数组。请注意,如文档中所述:
If set the maxResolution, minResolution, minZoom, maxZoom, and zoomFactor options are ignored
但这并不是很干净,因为您需要提供较大步长的分辨率以避免缩放时比例线值相同。
实际上,出于可读性原因,这是为了像这样工作。值相同但刻度线宽度不同,所以这不是真正的问题,对吗?
传递给视图的分辨率和比例线的 minWidth 之间的混合也应该可以完成这项工作,但同样,这将只是自制的 hacks,这不是 OpenLayers-5 中的任何参数来实现你想要的想做!
为避免重复,您必须使用分辨率数组来匹配刻度线间隔
刻度线间隔是这样固定的
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 之间