Skip to content

❓︎❓︎❓︎

现实中的数据会很多,有些会用作业务使用,有些只会用作底图,如何将繁多的数据样式化并不影响展示的效率?

采用预生成的方法存放在服务器端,然后根据用户提交的不同请求,把相应的地图瓦片发送给客户端的过程,它是一种多分辨率层次模型,从瓦片金字塔底层到顶层,分辨率越来越低,但表示的地理范围不变。

1. 切片原理

下面以谷歌切片(900913)集为例来说明一下切片原理和几个重要的概念。

谷歌切片(900913)集使用web墨卡托(等角正轴圆柱)投影,常见的如谷歌、OSM,国内的如天地图、高德都是采用此规则。

获取地图切片流程

1.1 切片范围(Tile Extent)

切片范围是指在制定切片规则的时候,需要定义一个大于数据范围或者与数据范围一致的切片范围,谷歌切片集的切片范围为全球范围,即[-20037508.34, -20037508.34, 20037508.34, 20037508.34]

1.2 切片原点(Tile Origin

在确定了切片范围后,需要定义一个切片原点,切片原点的定义有两种:左上(xyz)或者左下(tms)。切片原点的选择主要影响 “级-行-列”中的“列”。谷歌切片集的切片原点为左上,即 [-20037508.34, 20037508.34]

1.3 切片大小(Tile Size)

对于栅格切片,切片大小是指切片完成后每个图片的大小。对于矢量切片,切片大小指的是客户端在渲染切片数据时所呈现出来的大小。早期,切片的大小是256(谷歌切片集的切片大小)像素,这个跟当时的电脑的分辨率比较小有很大关系,随着技术的进步,现在很多切片的时候会采用512像素的大小,矢量切片在渲染的时候的就是采用的这个大小。

1.4 切片分辨率(Tile Resolution)

又称为像素大小(Pixel Size),是一组计算值,在不同的级别下其值不同,其计算公式为(xmax - xmin) / tileSize * Math.pow(2, zoom),如在0级的时候,谷歌切片集的分辨率为(20037508.34 - (-20037508.34)) / 256 * Math.pow(2, 0) = 156543.03390625

2. 切片分类

  • 切片规则

    • xyz:左上
    • tms:左下
  • 切片类型

    • 栅格切片
    • 矢量切片