当前在网络地图服务中,大部分都会采取缓存技术来替代实时对数据进行可视化,用以提高地图响应能力。本期五分钟学GIS就给大家介绍OGC提出的缓存技术标准的WMTS服务。
WMTS简介
WMTS,切片地图Web服务(OpenGIS Web Map Tile Service),提供了一种采用预定义图块方法发布数字地图服务的标准化解决方案。WMTS标准定义了一些操作,这些操作允许用户访问切片地图。
WMTS服务是OGC提出的公开标准的服务对接的格式,而且它还是WMS服务的改进版,因而越来越多的GIS项目采用WMTS服务作为底图服务,比如现在经常在项目中见到的用天地图作为底图服务的,就是对接天地图的WMTS服务。
WMTS和WMS的区别
WMTS服务和WMS服务对客户端请求服务的响应不同,比如在接受客户端请求WMTS服务时,返回给客户端是固定大小的瓦片,客户端根据索引号来获取每一张瓦片,而后拼接成地图进行展示,如图1所示;由于瓦片的规则是固定的,服务端可以预先缓存对应的瓦片,客户端需要时直接返回即可,因而WMTS是可缓存的。
而当客户端请求WMS服务时,返回给客户端是一张完整的图片,客户端取到直接展示,如图2所示;客户端可以请求任意区域,正由于这个任意性和服务端只能返回一张指定范围的图片,复用的概率低之又低,当并发增大,服务端性能就随之大大下降,故WMS仅是重在灵活性。
互联网时代重在效率,对比于灵活性,大家更喜欢选用可缓存的性能更优的WMTS服务。
WMTS切片原理
WMTS规定使用瓦片矩阵集(Tile Matrix Set)来表示切割后的地图,如图1所示,不同瓦片矩阵具有不同的比例尺(分辨率),每个瓦片矩阵由瓦片矩阵标识符(一般为瓦片矩阵的序号,分辨率最低的一层为第0层,依次向上排)进行标识。
瓦片矩阵中的每个瓦片由瓦片的行列号来标识,行列号分别从瓦片矩阵左上角点所在的瓦片开始算起,起始行列值是(0,0),依次向下向右增加,如图2所示,也就是取瓦片的索引号。
WMTS服务提供者只要遵循OGC标准的WMTS规范即可发布WMTS服务,但为了提高服务兼容性,WMTS还提出知名比例尺集(Well-known scale set)的概念,它是一个坐标参照系统和若干比例尺集合构成的众所周知的组合,常见的知名比例尺集有GlobalCRS84Scale、GlobalCRS84Pixel、GoogleCRS84Quad以及GoogleMapsCompatible。
SuperMap iServer提供了发布WMTS服务的能力,并符合OGC(Open Geospatial Consortium,开放地理信息联盟)制定的WMTS实现规范。
WMTS的读取
WMTS 1.0.0规范支持以HTTP KVP(Key-Value Pair)方式、SOAP 方式和REST 方式发布WMTS服务。下面以HTTTP KVP方式为例,介绍WMTS服务包含的三个操作,通过这三个操作可以实现对WMTS服务的读取。
1. GetCapabilities操作,获取服务的元信息;
2. GetTile操作,获取切片;
3. GetFeatureInfo操作,获取点选的要素信息。
在三个操作中,首先可以通过GetCapabilities操作获取一个Capabilities文档,能力文档是xml结构形式,文档描述了服务中可用的资源以及对接该服务的必备条件,以下这几个节点信息是从能力文件中需要获取的对接WMTS服务的关键参数。
在文档中,Contents节点描述了该服务器发布的WMTS服务的信息,了解Contents子集中layer(该服务器上一个顶层数据集的元数据)和TileMatrixSet(关于地图切块几何规则的说明)的结构可以帮助使用者准确获取相应的数据。
SuperMap对WMTS服务支持的方式
SuperMap iServer支持发布WMTS 1.0.0标准的服务,同时提供一个兼容《地理信息公共服务平台电子地图数据规范》中地图分级标准的服务。SuperMap iClient for JavaScript提供了对接WMTS服务的接口,下一期将给大家详细阐述客户端如何对接WMTS服务。