GeoServer瓦片缓存机制研究
2011-06-12阳华刘振宇许文明
阳华 刘振宇 许文明
南华大学计算机科学与技术学院 湖南 421001
0 引言
GeoWebCache通过存储(缓存)地图图片或瓦片,当它们被请求时,GeoWebCache致力于充当客户端(OpenLayer或Google Maps)服务端(GeoServer或其他WMS服务)间的代理。GeoWebCache(GWC)是一个采用Java实现用于缓存WMS(eb Map Service)Tile的开源项目。当地图客户端请求一张新地图和Tile时,GeoWebCache将拦截这些调用然后返回缓存过的Tiles。如果找不到缓存再调用服务器上的Tiles,从而提高地图展示的速度,实现更好的用户体验。如图1所示,服务器中蓝色的柱体就是瓦片的仓库。事实上,我们只需直接请求瓦片仓库而不需要咨询WMS服务,就可以拼凑出庞大的地图,因为GeoWebCache每秒钟可以应答成百上千的请求。

图1 eoWebCache在架构中所处的位置
1 实现的关键技术
1.1 金字塔模型
对于Web而言,将矢量图层渲染为栅格数据是一个昂贵的计算过程。如果矢量图层并不是经常修改,这样一次次重复描绘同样的线条就是在浪费宝贵的CPU。当Google Maps推出瓦片地图后,大一些的地图网站纷纷效仿,都是预先渲染好标注得很完美的海量图片,然后将这些大图片分割为256*256像素的瓦片,这些瓦片很小,以致它们下载很快,它们的文件名不会改变,以致浏览器能快速缓存起来。
研究Google Maps可以发现,google地图有0~17共十八级缩放比例,其瓦片大小为256*256,当0级比例尺为1:10000公里时,是一副循环的世界地图图片,以后每放大一级,比例尺增大一倍,在上一级的瓦片基础上再一分为四个256*256的瓦片,分辨率也越来越高,显示的内容越来越丰富,17级最丰富。这就是WebGIS中常用的金字塔模型,如图2所示。……
