WMTS地图服务每一层级分辨率
1. 概述
WMTS地图服务每一层级的分辨率是多少?关于这个问题以前推算过,但总是忘记了。网上查询又是一堆废话,现在把这个问题记录如下。
2. 详论
WMTS地图服务有两种形式的地图服务,Web墨卡托空间参考(EPSG:3857)下的切片和大地经纬度空间参考(EPSG:4326)下的切片。
2.1. Web墨卡托
我们知道,Web墨卡托是把全球范围内的坐标约束在范围[-20037508.3427892,20037508.3427892],并且取成正方形。而WMTS的一张瓦片像素宽高为256像素X256像素,同时第0层就是一张瓦片,那么其分辨率就很好计算了:
20037508.3427892 * 2 / 256 = 156543.033928
WMTS每一层宽、高依次往下倍增,形成一个四叉树,那么分辨率依次增大一倍,也就是分辨率值依次除以2。得到WMTS每一层级的地面分辨率(取6位小数):
层级 | 分辨率(米) |
---|---|
0 | 156543.033928 |
1 | 78271.516964 |
2 | 39135.758482 |
3 | 19567.879241 |
4 | 9783.939621 |
5 | 4891.969810 |
6 | 2445.984905 |
7 | 1222.992453 |
8 | 611.496226 |
9 | 305.748113 |
10 | 152.874057 |
11 | 76.437028 |
12 | 38.218514 |
13 | 19.109257 |
14 | 9.554629 |
15 | 4.777314 |
16 | 2.388657 |
17 | 1.194329 |
18 | 0.597164 |
19 | 0.298582 |
20 | 0.149291 |
21 | 0.074646 |
2.2. 大地经纬度
如果是大地经纬度空间参考下的WMTS,计算分辨率就更加简单了。我们知道,经度的范围(X方向)为[-180,180],纬度(Y方向)的范围为[-90,90],恰好是两倍的关系。为了保证瓦片像素宽高为256像素X256像素,很简单的方法就是让第一层为两张瓦片,左边经度范围为[-180,0],右边的经度范围为[0,180],这样仍然可以保证地理范围取成正方形。其分辨率为:
180/256 = 0.703125
同样从第一层开始往下四叉树划分,得到每一层级的地面分辨率(取10位小数):
层级 | 分辨率(度) |
---|---|
1 | 0.703125 |
2 | 0.3515625 |
3 | 0.17578125 |
4 | 0.087890625 |
5 | 0.0439453125 |
6 | 0.0219726563 |
7 | 0.0109863281 |
8 | 0.0054931641 |
9 | 0.0027465820 |
10 | 0.0013732910 |
11 | 0.0006866455 |
12 | 0.0003433228 |
13 | 0.0001716614 |
14 | 0.0000858307 |
15 | 0.0000429153 |
16 | 0.0000214577 |
17 | 0.0000107288 |
18 | 0.0000053644 |
19 | 0.0000026822 |
20 | 0.0000013411 |
21 | 0.0000006706 |
这个时候有两个问题需要说明:
- 经纬度的WMTS切片是没有第0级的,因为第0级是一个2:1的全球范围,无法放入一个正方形切片。
- 经纬度的WMTS切片分辨率单位是度,那么1度等于多少米呢?这个没有一个准确的定论,只能说一个大概:
\[1纬度 \approx 111km \\
1经度 \approx 111km \times cos(\phi)
\]
其中\(\phi\)表示纬度。