使用openlayers设置地图比例

使用openlayers设置地图比例,openlayers,Openlayers,如何在openlayers 4.4中使用“1:1000”或“1:25000”之类的输入值设置地图的比例? 我尝试了这个例子,但没有成功 比例仅在输出大小已知且固定的打印地图上具有精确含义。对于屏幕地图,浏览器和操作系统不知道显示器的物理尺寸,只知道它使用的像素数,因此屏幕地图的标称比例通常基于0.28mm(90.7142857143 dpi)的假定像素尺寸,而操作系统通常采用72dpi或96dpi。在本例中,屏幕上的比例尺假定为0.28mm像素大小,而与显示器无关,但在地图准备打印到已知物理大小

如何在openlayers 4.4中使用“1:1000”或“1:25000”之类的输入值设置地图的比例? 我尝试了这个例子,但没有成功


比例仅在输出大小已知且固定的打印地图上具有精确含义。对于屏幕地图,浏览器和操作系统不知道显示器的物理尺寸,只知道它使用的像素数,因此屏幕地图的标称比例通常基于0.28mm(90.7142857143 dpi)的假定像素尺寸,而操作系统通常采用72dpi或96dpi。在本例中,屏幕上的比例尺假定为0.28mm像素大小,而与显示器无关,但在地图准备打印到已知物理大小的设备或pdf时更新

    var scale = document.getElementById('echelleVal').value;
    var size = map.getSize(); 
    var viewResolution = map.getView().getResolution();
    var width = Math.round(size[0] * viewResolution / 25.4);
    var height = Math.round(size[1] * viewResolution / 25.4);
    var scaleResolution = scale/ol.proj.getPointResolution(map.getView().getProjection(), viewResolution / 25.4, map.getView().getCenter());
    // Set size
    var newsize = [width, height];
    map.setSize(newsize);
    map.getView().setResolution(scaleResolution);