瓦片地图面面观之缩放级别

缩放级别

我们知道瓦片地图基于瓦片,而瓦片本身是栅格数据,无法再保证不损失图元数据的情况下对其连续缩放。因此瓦片地图一般通过定义缩放级别的方式来实现瓦片地图的层级缩放。

一般瓦片地图定义缩放级别在1~20级范围内。每个缩放级别覆盖的投影平面范围不变,并按不同的显示比例及地面分辨率分割瓦片,由此形成了瓦片数量由少到多、地图尺寸由小到大的瓦片金字塔模型。图1为谷歌地图瓦片金字塔模型。

图1 谷歌地图瓦片金字塔模型

  1. 第0级(zoom 0):由1张瓦片覆盖,地图尺寸为256*256像素;
  2. 第1级(zoom 1):由4张瓦片覆盖,地图尺寸为512*512像素;
  3. 第2级(zoom 2):由16张瓦片覆盖,地图尺寸为1024*1024像素。
  4. ...

不难发现:缩放级别每增加一级瓦片增加四倍,也就是高一级瓦片总是由低一级瓦片一切为四而来。这也是瓦片地图瓦片切片的核心所在,表达如下:

n_{t} = 2^{2\times level}

w_{p} = 256\times 2^{level}

h_{p} = 256\times 2^{level}

其中level为缩放级别;

n_{t}level缩放级别下瓦片数量;

w_{p}level缩放级别下地图像素宽度;

h_{p}level缩放级别下地图像素高度。

地面分辨率

地面分辨率为瓦片地图中一个非常重要的参数,基本上所有瓦片地图服务必须指定该参数。地面分辨率表达的是瓦片地图显示窗口系统与投影平面坐标系之间的关系,单位为m/p(米每像素)。由瓦片金字塔模型易知地面分辨率直接与缩放级别相关:

$$\left\{ \begin{aligned} r_{x} &=& f_{1}(level)) \\ r_{y} &=& f_{2}(level)) \\ \end{aligned} \right. $$

其中level为缩放级别;f_{1}f_{2}均为单值而单调降函数,表征了缩放级别越大地面分辨率越高。

在已知瓦片地图投影平面坐标范围的情况下,由瓦片金字塔模型不难计算各缩放级别的地面分辨率。下面以谷歌地图为例,演示谷歌地图地面分辨率的计算过程。

已知谷歌地图采用Web墨卡托投影方法,投影平面坐标系X/Y轴取值范围均为[-20037508.3427890167,20037508.3427890167],则:

$$ \left\{ \begin{aligned} r_{x} &=& \frac {(20037508.3427890167 - (-20037508.3427890167))}{256 \times 2^{level}} = \frac {20037508.3427890167}{256 \times 2^{level - 1}} \\ r_{y} &=& \frac {(20037508.3427890167 - (-20037508.3427890167))}{256 \times 2^{level}} = \frac {20037508.3427890167}{256 \times 2^{level - 1}} \\ \end{aligned} \right. $$

level = 1时,

$$ \left\{ \begin{aligned} r_{x1} &=& 78271.516m/p \\ r_{y1} &=& 78271.516m/p \\ \end{aligned} \right. $$

我将地图尺寸为512*512像素的第一级地面分辨率r_{x1}r_{y1}其称之为基础地面分辨率。则:

$$ \left\{ \begin{aligned} r_{x} = r_{x1} \times 2^{1 - level} \\ r_{y} = r_{y1} \times 2^{1 - level} \\ \end{aligned} \right. $$

基础地面分辨率与瓦片地图类型相关。

主流瓦片地图的基础地面分辨率汇总

主流瓦片地图的基础地面分辨率可分为以下几类:

  r_{x1}(m/p) r_{y1}(m/p) tile maps
1 78271.516 78271.516 ArcGIS online,OpenStreetMap,MapQuest,必应地图、天地图(web墨卡托),高德地图,谷歌地图,超图,e都市,搜狗地图,腾讯地图、360地图
2 131072 131072 百度地图
3 0.703125 0.703125 谷歌地球、 天地图(经纬度直投)
发布了20 篇原创文章 · 获赞 4 · 访问量 7209

猜你喜欢

转载自blog.csdn.net/chenwen112/article/details/96475185
今日推荐