已知:
1.mapScale 比例尺,图上距离和实际距离的比 图上1m=实际1*mapScale
所以,实际中1000m在地图上所占的长度mapl=1000/mapScale
问题1:那这mapl所占的像素应该是多少呢?
解答:
已知条件:
1.dpi:每英寸的像素数 1英寸=1*dpi个像素
2.1英寸=2.54厘米
若dpi设置为96,则:
图上1英寸=96像素
图上0.0254m=96像素
图上1m=96/0.0254 像素
所以综上
实际中1000m在指定mapScale下所占的像素数为:
(1000/mapScale)*(96/0.0254)
最终问题:已知两点坐标,如何计算两点之间的实际距离在指定mapScale以及指定dpi下,转换成的像素数:
1.求出两点之间的实际距离dis:
dis=ol.sphere.getDistance([ld[0],rt[1]],[rt[0],rt[1]]);
2.求像素数:
pixel=(dis/mapScale)*(dpi/0.0254)
以下代码仅供参考: