首页 / 浏览问题 / WebGIS / 问题详情
ol.supermap.control.ScaleLine长度问题
268EXP 2025年04月21日

目前使用iClient for Openlayers配置了一个EPSG:3857的地图,其中,地图的比例尺固定为了[1/50,1/100,1/250,1/500,1/1000,1/1500,1/2500,1/5000,1/10000,1/20000,1/50000],同时也为地图添加了ol.supermap.control.ScaleLine。

通过跟iDesktop中使用的同一个地图进行对照,可以确定设置地图的比例尺没有问题(比如1/50000跟iDesktop中地图的1/50000完全一致)

现在遇到的问题是,在这个情况下,ol.supermap.control.ScaleLine显示的比例尺跟地图的比例尺有对不上的地方:

包括但不限于,地图上比例尺是1/5000的场合,ol.supermap.control.ScaleLine显示的是100,m,并且长度约是2.5厘米或者1英寸,这跟我认识中的比例尺并不符合。

请问:

1.iClient for Openlayers的比例尺1/5000是指地图上1厘米等于5000m还是50m

2.为什么ol.supermap.control.ScaleLine的长度不是整数厘米,而且会随着地图分辨率或者地图的纬度发生变化

1个回答

OpenLayers是这么长一段表示100米,如果要固定线段长度,需要重写js,https://blog.csdn.net/heiyihahei/article/details/136341438

您这边是只想用OpenLayers自带的这种比例尺样式?我这边找到一个数字比例尺的,您看看可以吗?https://segmentfault.com/a/1190000019169455?utm_source=sf-related

1,141EXP 2025年04月21日
您好,我们这边想要实现一个类似于Openlayers的比例尺的效果,但长度最好不变是1厘米代表多少米,但直接使用Openlayers的比例尺控件会发生以上的问题

不一定必须要用默认的比例尺,但还是想理解一下为什么会这样

另外,请问第一个问题的答案是什么?
OpenLayers底层实现原理需要您找一下OpenLayers的开源数据查看,我们是基于OpenLayers开源框架实现,且和iDesktop中比例尺计算方式不一致,因为OpenLayers中同一层级的比例尺也不是固定的
也就是说我们iClient for Openlayers并没有对比例尺进行过任何的修改,全部使用的是Openlayers本身的功能是吧

但我这边通过计算得到的1/5000比例尺的分辨率然后在地图上显示的效果和在iDesktop中设置1/5000的比例尺显示的效果是能完全重叠的

在这种情况下这个1/5000的比例尺,iClient for Openlayers大致会显示2.5厘米,然后这2.5厘米是100m

对比地图能明显发现Openlayers提供的距离更加正确,这2.5厘米平均下来比较接近1厘米50m,所以请问我们比例尺1/5000代表的究竟是1厘米5000m还是1厘米50m
...