根据zoom动态计算arcgis server exportmap所需的size参数进行打印

已知:

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)

以下代码仅供参考:


你可能感兴趣的:(根据zoom动态计算arcgis server exportmap所需的size参数进行打印)