地图数据快速渲染------基于传统GIS平台的多服务器切片生产技术

      传统的地理信息平台显示矢量数据的方式或栅格数据,是直接渲染在软件上进行展示,需要配以专业的地图软件、符号库、字体库等内容。随着BS端对于地图展示的要求,传统的渲染方式已经不能满足要求(需要的前置条件太多,而且地图信息越丰富其渲染越慢,彼时PC的显卡及CPU也都比较弱),于是诞生了瓦片地图。瓦片地图的定义如下:

     瓦片地图金字塔模型是一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变。首先确定地图服务平台所要提供的缩放级别的数量N,把缩放级别最高、地图比例尺最大的地图图片作为金字塔的底层,即第0层,并对其进行分块,从地图图片的左上角开始,从左至右、从上到下进行切割,分割成相同大小(比如256x256像素)的正方形地图瓦片,形成第0层瓦片矩阵;在第0层地图图片的基础上,按每2x2像素合成为一个像素的方法生成第1层地图图片,并对其进行分块,分割成与下一层相同大小的正方形地图瓦片,形成第1层瓦片矩阵;采用同样的方法生成第2层瓦片矩阵;…;如此下去,直到第N一1层,构成整个瓦片金字塔。(摘自百度百科)

     瓦片地图虽然解决了在在BS端地图数据的展示,但是随之而来的就是,需要大量的前期预处理的工作来对瓦片数据的生产。从地图的配图,到生成一个完整能发布的瓦片地图服务,需要大量的时间(传统的GIS软件瓦片地图的生产,多是采用单机程序)。即使数据采集工艺完善,数据更新频率高,但是依然需要大量的时间来进行瓦片数据的生产,从而在BS端的客户所看到的数据滞后非常严重。

      在没有使用云计算的年代,为了提高瓦片地图的生产效率,各个厂商采用了很多办法。

     其中我比较欣赏的办法,也是为现在实时渲染提供理论依据的办法是。使用多个服务器/PC,并行生产的方式。如下图所示:

地图数据快速渲染------基于传统GIS平台的多服务器切片生产技术

假设现在有四台服务器(访问同一块共享存储),将原有的地图数据,划分为四块有相交的区域。将四个区域的数据获取到这四台服务器上,这四台服务器根据统一的瓦片生产规则对数据进行生产,将生产好的瓦片数据放置到共享存储的同一目录下(目录的结构、瓦片的命名规则也统一)。这样,将原有的一台服务器进行生产的方式变更为四台服务器同时进行生产,可以将瓦片数据的生产效率极大的提升。