天天看点

Scale和Resolution的相互转换算法

一、根据resolution计算scale:

     var scale2=0.0254/96/0.35156249999999994/Math.PI/2/6378137*360;

      解释:0.0254代表每英寸0.0254米

                96代表:dpi 每英寸96个像素点

                resolution: 0.35156249999999994

                6378137:地球半径

二、根据scale计算resolution

       var resolution2=147914677*(0.0254/96/Math.PI/2/6378137*360);

       解释:147914677代表scales

         测试代码:

<html>
<body>

<script type="text/javascript">
//第七级 resolution
var resolution=0.00008596045914639882;

//坐标原点:
var x0=-180;
var y0=90;

//切图范围,示例左下角
var minx=88.390660499999981;
var miny=42.729192000000005;

var tilex=(minx-x0)/resolution/256;
var tiley=(miny-y0)/resolution/256;
document.write(tilex+ "<br />");
document.write(tiley+ "<br />");

//1.scale计算resolution,网上算法
var scale=147914677.7272828;
document.write(scale+ "<br />");
var res=scale*0.02540005080010160020/96/111194.872221777; 
document.write(scale+ "<br />");
document.write(res+ "<br />");

//2.resolution计算scale,精确算法
var scale2=0.0254/96/0.35156249999999994/Math.PI/2/6378137*360;
document.write((1/scale2)+ "<br />");

var scale2=1/(0.0254/96/0.35156249999999994/Math.PI/2/6378137*360);

var resolution2=147914677*(0.0254/76.2/Math.PI/2/6378137*360);
document.write(resolution2+"<br />");

document.write(Math.PI*2*6378137/360);
</script>
</body>
</html>