地图瓦片文件的组织形式

原理

地图瓦片的基本原理:

1.每个瓦片文件大小为256*256像素。

2.地图的最小级别是0,这时候,整个世界地图是一张瓦片。根据Web-Mercator投影公式,经度[-180°,180°],纬度[-85.051129°, 85.051129°]区间的数据被投影在一个256*256像素的正方形图片上。

Web墨卡托投影(英文名为Web mercator)坐标系,广泛应用与Google Map、Bing Map等电子地图投影中。它以整个世界范围,赤道作为标准纬线,本初子午线作为中央经线,两者交点为坐标原点,向东向北为正,向西向南为负。

谷歌瓦片地图规范坐标原点为东经180°,北纬85.05°,x轴向右,y轴向下。

3.级别越大,组成世界地图的瓦片数越多,可以展示的地图内容越详细。

4.某一级别下的地图瓦片是由它的上一层级的各瓦片切割成的4个瓦片组成,形成了瓦片金字塔。

5.瓦片通常都是png、tiff格式的,命名格式通常为z/x/y.png(.tiff)。

瓦片编号规则的不同流派

瓦片生成后,就是一堆图片。怎么对这堆图片进行编号,是目前主流互联网地图商分歧最大的地方。总结起来分为四个流派:

  • 谷歌XYZ:Z表示缩放层级,Z=zoom;XY的原点在左上角,X从左向右,Y从上向下。
  • TMS:开源产品的标准,Z的定义与谷歌相同;XY的原点在左下角,X从左向右,Y从下向上。
  • QuadTree:微软Bing地图使用的编码规范,Z的定义与谷歌相同,同一层级的瓦片不用XY两个维度表示,而只用一个整数表示,该整数服从四叉树编码规则
  • 百度XYZ:Z从1开始,在最高级就把地图分为四块瓦片;XY的原点在经度为0纬度位0的位置,X从左向右,Y从下向上。

 

注意:以下讲解图片,命名格式为 z/y/x。

图片来自:https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}

0层:

0/0/0

地图瓦片文件的组织形式

1层:

将上图切割为

1/0/0    1/0/1  1/1/0  1/1/1

地图瓦片文件的组织形式地图瓦片文件的组织形式地图瓦片文件的组织形式地图瓦片文件的组织形式

2层:

将上述4张图分别切割为

2/0/0      2/0/1     2/1/0     2/1/1

2/0/2     2/0/3     2/1/2      2/1/3

2/2/0     2/2/1     2/3/0     2/3/1

2/2/2    2/2/3     2/3/2      2/3/3

形成如下图形:

地图瓦片文件的组织形式

3层:

如下图示:
地图瓦片文件的组织形式
每一层的X、Y坐标最大值为 2^(level)-1,经纬度坐标(lng,lat)转瓦片坐标(tileX,tileY)的公式如下:

tileX=int( (lng+180)/360*2^z)

tileY=(1- arsinh(tan(lat*π/180))/π) *2^(z-1)

其中反双曲正弦函数arsinh(x),等价于ln(x+(x^2+1)^0.5)。

瓦片坐标(tileX,tileY)转经纬度坐标(lng,lat)公式,计算结果为该瓦片对应的最小经度和最大纬度:

lng=tileX/2^z * 360-180

lat=arctan(sinh(π*(1-2*tileY/2^z)))*180/π

其中,双曲函数sinh(x)=(e^x-e^(-x))*0.5。

关于坐标转换,可参见:https://blog.csdn.net/sinat_41310868/article/details/115561425

 

每一层的图片数量如下:

count(x)or count(y) x^2
1 1.00 1.00
2 2.00 4.00
3 4.00 16.00
4 8.00 64.00
5 16.00 256.00
6 32.00 1,024.00
7 64.00 4,096.00
8 128.00 16,384.00
9 256.00 65,536.00
10 512.00 262,144.00
11 1,024.00 1,048,576.00
12 2,048.00 4,194,304.00
13 4,096.00 16,777,216.00
14 8,192.00 67,108,864.00
15 16,384.00 268,435,456.00
16 32,768.00 1,073,741,824.00
17 65,536.00 4,294,967,296.00
18 131,072.00 17,179,869,184.00
19 262,144.00 68,719,476,736.00