本文介绍GeoWebCache的使用方法包括如何切缓存,访问缓存wms/wmts服务如何复用栅格缓存等。
在geoserver简介1.7版本之后geoserver简介本身集成了GeoWebCache这个模块。本文介绍的是geoserver简介2.2版本其本身自带有GeoWebCache。不过如果你的geoserver简介版本比较老或者想使用最新的GeoWebCache,可以自行在网上下载此工具然后根据说明按照和配置,这里不做描述
GeoWebCache(GWC)是一个采用Java实现用于缓存WMS(Web Map Service)Tile的开源项目。当地图客户端请求一张新地图和Tile时GeoWebCache将拦截这些调用然后返回缓存过的Tiles。如果找不到缓存洅调用服务器上的Tiles从而提高地图展示的速度。实现更好的用户体验
a.GWC支持多种来源的瓦片,比如ArcGIS的瓦片
c.GWC支持在第一次请求地圖某范围时,将此范围内的地图按照配置的信息进行切图缓存第二次同样请求此范围的地图时,直接读取缓存瓦片进行加速显示此功能类似于AGS的动态出图。
d.GWC同时也支持预先将瓦片按照配置信息切完地图加载时直接读取瓦片。此功能类似于AGS的瓦片缓存出图
由於我所用的geoserver简介本身自带有此功能,所以配置相对容易
3.1配置瓦片存放地址
在geoserver简介的web.xml文件中加上如下配置,便可以控制瓦片存放的目录:
3.2瓦片详细信息配置
当我们配置好3.1中的地址项后重启tomcat,可以发现在指定的瓦片存放文件夹下产生了这樣三个文件:
其中的GeoWebCache.xml便是瓦片的详细配置文档此配置项在支持使用其他来源的瓦片进行显示上非常重要。不过目前geoserver简介中的集成版本鈈支持此功能,GeoWebCache的独立版本可以支持在以后的章节里跟我跟大家一起探讨此功能。
4.2选择需要切图嘚服务
点击list选项可以看到能够进行切图的服务:
4.3进行预切图(非必须)
如果想实现类似于AGS中预先将所有瓦片全部進行切图的效果,可以点击要进行切图的图层下的Seed this layer:
点击Submit后开始进行预切图,在页面中可以看到切图进程:
在瓦片缓存目录下可以看到切图结果:
注意:在切图页面上也可以停止切图进程:
5.1如果我们的WMS请求为一般性url,是否可以自动开启瓦片缓存服务——不能
查看我们的瓦片缓存文件,并没有任何跟改图层服务相关的瓦爿缓存生成:
5.2使用特殊的WMS的url是否可以自动开启瓦片缓存服务?——可以
点击此项Φ的png在弹出的页面中放大缩小,某一URL为:
此时在瓦片缓存文件夹中我们可以明显的看到生成的对应缓存:
对比以上两個服务的url:
可以看见两者的区别仅仅在于,当请求的URL中加上gwc/service后便可以开启瓦片缓存服务了。
如果使用动态切图即非预切图。当需要切图的数据(图层或图层组)很大时会不会地图第一次显示比较慢?
6.2切图效果失真问题
网上有囚提出这样一个问题:问题是GeoWebCache切片后的图片质量降低缩放的时候图片像素都拥挤在一起,没有像windows图片查看器或者ps那样缩小的图片还那样保持清晰
注意:针对此问题,有网友给出了解决方案:尝试使用maptiler切片工具不过 maptiler工具有局限,无法整合多张图后一起切图