【发布时间】:2018-06-20 13:37:53
【问题描述】:
我想根据比例缩放到 ol3 地图(例如 1:50000)。这意味着ol地图中的每1cm必须在现实世界中显示50000cm。为了将比例转换为分辨率,我使用如下:
var getResolutionFromScale = function(scale, units) {
var dpi = getDpi();
var mpu = ol.proj.METERS_PER_UNIT[units];
var inchesPerMeter = 39.37;
return parseFloat(scale) / (mpu * inchesPerMeter * dpi);
}
function getDPI()
{
var div = document.createElement("div");
div.style.width="1in";
var body = document.getElementsByTagName("body")[0];
body.appendChild(div);
var dpi = document.defaultView.getComputedStyle(div, null).getPropertyValue('width');
body.removeChild(div);
return parseFloat(dpi);
}
现在进行测试,我使用ScaleLine,当scaleLine控件显示1000m时,它的长度必须是2cm,但它几乎是2.5cm。
问题出在哪里?如何按比例缩放?
【问题讨论】:
标签: javascript scale openlayers dpi