WGS84各层级数据计算

创建日期:2024-06-21
更新日期:2025-01-01

计算公式

1、地球半径 = 6378137.0米

2、地球周长

2 * π * 地球半径

40075016.7 米

3、DPI(每英寸像素数)

96dpi = 96像素 = 2.54厘米 = 0.0254米

1像素 = 0.0254 / 96 米

4、地图宽度

地图高度

256 * pow(2, 层级)

5、分辨率(米/像素) = 2 * π * 地球半径 / (256 * pow(2, 层级) )

6、比例尺

图上距离 / 实地距离

1 : ( 2 * π * 地球半径 / (256 * pow(2, 层级) / dpi * 0.0254 ) )

7、分辨率(度/像素) = 360 / (256 * pow(2, 层级) )

8、地图左上角纬度:180度墨卡托反算=(2 * Math.atan(Math.exp(180 * Math.PI / 180)) - Math.PI / 2) * 180 / Math.PI=85.05112877980659度

说明:pow(2, 层级) 表示2的层级次方

层级(LOD)地图宽度和高度(像素)分辨率(米/像素)比例尺(96 dpi)分辨率(度/像素)
0256156543.033928040971 : 591658710.90913131.40625
151278271.516964020481 : 295829355.454565640.703125
21,02439135.758482010241 : 147914677.727282820.3515625
32,04819567.879241005121 : 73957338.863641410.17578125
44,0969783.939620502561 : 36978669.4318207060.087890625
58,1924891.969810251281 : 18489334.7159103530.0439453125
616,3842445.984905125641 : 9244667.3579551760.02197265625
732,7681222.992452562821 : 4622333.6789775880.010986328125
865,536611.496226281411 : 2311166.8394887940.0054931640625
9131,072305.7481131407051 : 1155583.4197443970.00274658203125
10262,144152.87405657035251 : 577791.70987219850.001373291015625
11524,28876.437028285176251 : 288895.854936099260.0006866455078125
121,048,57638.218514142588131 : 144447.927468049630.00034332275390625
132,097,15219.1092570712940631 : 72223.963734024820.000171661376953125
144,194,3049.5546285356470321 : 36111.981867012410.0000858306884765625
158,388,6084.7773142678235161 : 18055.9909335062040.00004291534423828125
1616,777,2162.3886571339117581 : 9027.9954667531020.000021457672119140625
1733,554,4321.1943285669558791 : 4513.9977333765510.000010728836059570312
1867,108,8640.59716428347793951 : 2256.99886668827550.000005364418029785156
19134,217,7280.298582141738969741 : 1128.49943334413770.000002682209014892578
20268,435,4560.149291070869484871 : 564.24971667206890.000001341104507446289
21536,870,9120.074645535434742441 : 282.124858336034446.705522537231445e-7
221,073,741,8240.037322767717371221 : 141.062429168017223.3527612686157227e-7
232,147,483,6480.018661383858685611 : 70.531214584008611.6763806343078613e-7

JavaScript代码

分辨率:for(var i = 0; i <= 23; i++) console.log(i, 2 * Math.PI * 6378137 / (256 * 2 ~*~* i));

比例尺:for(var i = 0; i <= 23; i++) console.log(i, 2 * Math.PI * 6378137 / (256 * 2 ~*~* i / 96 * 0.0254));

=

坐标转换 =

屏幕坐标转设备坐标

X设备 = (X屏幕 / 屏幕宽度) * 2 – 1

Y设备 = -(Y屏幕 / 屏幕高度) * 2 + 1

设备坐标转屏幕坐标

X屏幕 = (X设备 + 1) / 2 * 屏幕宽度

Y屏幕 = (1 - Y设备) / 2 * 屏幕高度