地图缓存技术的标准
作者:Flyingis
本文欢迎友情转载,但请注明作者及原文链接,严禁用于商业目的!
缓存技术是打通在线地图应用任通二脉的关键技术,将在线地图应用从企业内部推向大众视线之中,缓解WebGIS服务器端数据处理的压力,大幅改善客户端用户体验。
过去使用ArcIMS时,常常讨论和观测空间服务器(Spatial Server)部分的负载压力,因为在地图上鼠标的每一次简单操作,都会给后台带来大量的计算,最经典的公众应用当属USGS开发的系统,例如 http://maps.er.usgs.gov/website/basins1/,为了解决这个问题,不少开发人员开始直接为ArcIMS编写Cache脚本。
其实缓存切片算法的思想都大同小异,要考虑到因素有图片格式,图片大小,起算点,横列编号等等,但是不同的开发人员写出的Cache方法毕竟不同,加上后来不少GIS平台已经开始支持Cache功能,使得Cache结果之间难以相互兼容。因此标准成为了各种Cache技术相互兼容的一种方法,哪怕基于标准能够演绎出不同的具体方案,但都是中国话,听方言总比听阿拉伯语强。
对于缓存技术的标准,我曾经有些找不到北,肯定有人能区分TMS,WMSC,WMTS,TWMS并加以理解,但我相信更多的人需要一起接着讨论。
WMSC全称是Web Mapping Service - Cached,对它完整的定义来源于OSGeo Wiki,2006年在FOSS4G会议上提出讨论,目的在于提供一种预先缓存数据的方法,以提升地图请求的速度,自始至终该标准都没有写入OGC之中。WMSC通过bbox和resolutions去决定请求的地图层级,为了更加直观的请求地图瓦片,一些软件做了一些改进,例如WorldWind在请求中使用level/x/y三个参数,直观明了。典型的基于WMSC的实现是TileCache,另外一个关于WMSC的参考:http://wiki.osgeo.org/wiki /WMS_Tiling_Client_Recommendation
再说WMTS,这是名副其实的OGC标准规范,2009年2月 26日推出,是OGC 07-057文档第六个版本,相比过去的几个版本,v0.6.0日趋成熟,明确了WMTS实现模型,并同时支持Http KVP,SOAP和RESTful三种协议,已经成为和WMS并列的重要OGC规范之一,作为缓存技术的权威标准,ArcGIS Server 10将对其进行支持。WMTS详细规范:http://www.opengeospatial.org/standards/wmts,Tile空间分布图如下:
既然WMTS是OGC主推的缓存技术规范,那么TMS(Tile Map Service)和TWMS(Tiled WMS)肯定不会成为主流,它们早于WMTS出现,是WMTS发展的基础,为07-057r6的制定提供参考,从TWMS规范编号07-057r2也能看出端倪,当时它仅仅是WMS的一个子集,现在已经成为和WMS并列的规范之一,名称更改为WMTS,这就是它们之间的关系。
这些缩略词表达意思相近,实质互有区别,虽然我们不用像央视一样避免使用外语及缩略词,但我们要明白它们的含义,相信今后WMTS会出现越来越多。
Flyingis @ China
email: dev.vip#gmail.com
blog: http://flyingis.cnblogs.com/