GIS之白话数据源及访问标准2:WMTS
WMS,WMTS…是不是很晕,此章学习、梳理下WMTS,WMS见上节,写到这我都有点晕了。。。
前言
我们尽量以示例,截图方式说明是什么,怎么用及适用方式。
一、WMTS是什么?
WMTS,web map tile service,网络地图瓦片服务;TMS,tile map service,瓦片地图服务。名称虽然不一致,但指的都是地图瓦片服务,TMS形成更早,不过WMTS有官方OGC盖章认可。
WMTS的目的是,更高效快速的加载渲染地图数据。如果海量的地图数据以矢量的形式传输到客户端,在客户端渲染,首先需要消耗大量的网络流量,其次对客户端的CPU也是很大的负荷。考虑到这些情况,WMTS提出预渲染图块的模式,在服务端将地图渲染好,并根据比例尺分割不同的栅格图块,根据客户端的请求,传输这些图块,提供给客户端显示。
二、白话
以上解释是网上摘录,说的挺好。简单说就是,如果服务器后台从数据库读取地理数据->内存中绘制->生成最终图片->传输,服务器是压力表示很大,地理信息一般是巨量的数据。另外为什么切割为瓦片呢,便于传输、数据量小,便于浏览器加载,要不然用户会崩溃,或者浏览器会崩溃。
三、使用示例:
openlayers 使用:
var wmtsSource = new ol.source.WMTS({
url: 'http://ts2.scalgo.com/global/wmts?token=' + scalgoToken,
layer: 'hydrosheds:sea-levels',
format: 'image/png',
matrixSet: 'EPSG:3857',
attributions: [
'<a href="http://scalgo.com">SCALGO</a>',
'<a href="http://www.cgiar-csi.org/data/' +
'srtm-90m-digital-elevation-database-v4-1">CGIAR-CSI SRTM</a>'
],
tileGrid: tileGrid,
style: 'default',
dimensions: {
'threshold': 100
}
});
调用:
https://ts2.scalgo.com/global/wmts?token=CC5BF28A7D96B320C7DFBFD1236B5BEB&layer=hydrosheds:sea-levels&style=default&tilematrixset=EPSG:3857&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/png&TileMatrix=7&TileCol=35&TileRow=53&threshold=10
返回结果:
总结
服务后端需按一定的坐标参考,建立瓦片矩阵集,将矢量数据或影像切片。调用端可以高效调用、展示,一般用于静态的地理影像数据加载,或巨量的矢量数据展示。