WMS-C、WMTS、TMS

    WMS-C   

    WMS-C全称是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
    

WmtsMTS-切片地图Web服务

· 概述

WMTS(OpenGIS® Web Map Tile Service)当前版本是1.0.0。WMTS标准定义了一些操作,这些操作允许用户访问切片地图。WMTS可能是OGC首个支持RESTful访问的服务标准。

· WMTS的原理和操作

如果知道一个请求的边界范围,可以根据以下的算法获取切片的序号:

// 计算切片序号范围

epsilon = 1e-6[1] //一个不影响坐标精度的小数值

tileMinCol = floor((bBoxMinX - tileMatrixMinX) / tileSpanX + epsilon)

tileMaxCol = floor((bBoxMaxX - tileMatrixMinX) / tileSpanX - epsilon)

tileMinRow = floor((tileMatrixMaxY - bBoxMaxY) / tileSpanY + epsilon)

tileMaxRow = floor((tileMatrixMaxY - bBoxMinY) / tileSpanY - epsilon)

// 避免超出范围

if (tileMinCol < 0) tileMinCol = 0

if (tileMaxCol >= matrixWidth) tileMaxCol = matrixWidth-1

if (tileMinRow < 0) tileMinRow = 0

if (tileMaxRow >= matrixHeight) tileMaxRow = matrixHeight-1

在一个WMTS服务中包括以下3个操作:

1. GetCapabilities(获取服务的元信息)

2. GetTile(获取切片)

3. GetFeatureInfo(可选,获取点选的要素信息)

可以看到这些操作和WMS的操作非常的异曲同工。

TMS

TMS是tile map service的缩写,是一种瓦片地图服务,也称之为WMTS(web map tile service),具体的标准可以见OGC网站。TMS的算法很简单,就是把投影后的世界地图按照层级进行四叉树(待验证)切割,切割后的瓦片数量随层级呈金字塔型,数量和层级关系如下表所示:

0 1 tile covers whole world 1 tile
1 2 × 2 tiles 4 tiles
2 4 × 4 tiles 16 tiles
n 2n × 2n tiles 22n tiles
12 4096 x 4096 tiles 16.777.216
16 Maximum zoom for OpenCycleMap (mostly) 232 = 4.294.967.296 tiles
17 Maximum zoom for Osmarender layer 17.179.869.184 tiles
18 Maximum zoom for Mapnik layer 68.719.476.736 tiles

你可能感兴趣的:(GIS开发)