WMTS服务介绍

WMTS规定使用瓦片矩阵集(Tile Matrix Set)来表示切割后的地图,如图1所示,不同瓦片矩阵具有不同的比例尺(分辨率),每个瓦片矩阵由瓦片矩阵标识符(一般为瓦片矩阵的序号,分辨率最低的一层为第0层,依次向上排)进行标识。

一、元数据能力文档(Capacity.xml)

示例链接:

https://diffmap.zggyd.com/iserver/services/map-ecology/wmts100?SERVICE=WMTS&REQUEST=GetCapabilities&VERSION=1.0.0

元数据能力文档的主要内容在于content节点,因此主要介绍该节点下的数据结构的含义。

完整的解释可参考:OpenGIS Web 地图切片服务实施标准 - 开放地理空间联盟 (ogc.org)

1.Layer节点

1)Title跟Identifier:图层地图名与标识符

一系列的Boundingbox:图层地图范围(在不同的坐标系下的)

Style: 图层的样式

ormat:F缓存图片格式

TileMatrixSetLink:比例尺集合的链接,这部分只提供比例尺集合的标识符,然后需要到TileMatrixSet中去索引到对应的比例尺集合。

ResourceURL:获取瓦片图片的url地址模板

2)TileMatrixSetLink中还包含了TileMatrixSetLimits,TileMatrixSetLimits会对其对应的比例尺集合做限制以减少不必要的资源加载和浪费。

2.TileMatrixSet节点

1)基本参数介绍

首先是要了解一下TileMatrixSet节点中各个参数的含义。需要注意的是WMTS中以左上角为原点,向下方向为Y轴正向(由北向南),向右方向为X轴正向(由西向东)。

瓦片矩阵中的每个瓦片由瓦片的行列号来标识,行列号分别从瓦片矩阵左上角点所在的瓦片开始算起,起始行列值是(0,0),依次向下向右增加,如上图所示,也就是取瓦片的索引号。

Identifier:这个瓦片阵列的 ID

TopLeftCorner:这个瓦片的左上角位置,此处是经纬度表达(基于 EPSG:4326 坐标系)

TileWidth、TileHeight:瓦片的像素长宽,即 256 × 256 像素

MatrixWidth、MatrixHeight:代表这一级瓦片横向纵向跨度有多少个瓦片

ScaleDenominator:比例尺分母(字面翻译,其值是一个像素代表的实际距离与像素尺寸(习惯以0.28mm标定)的比值)

2)相关计算思路

分辨率Resolution是指一个像素所代表的实际地面距离,单位米。WMTS 1.0.0是以像素大小0.28mm来标定的(这是一个经验值),即每英寸像素个数为0.00254/0.00028=90.71428571428571个(OGC WMTS规范中的数值)。

瓦片图片的分辨率怎么计算,以4326 切片第 0 级瓦片(256x256像素)阵列有 1 行 2 列为例,一个瓦片边长等同地球赤道的一半。地球周长以400750170m计算

一个像素代表的实际长度=(400750170/2)/256=782715.17578125m

下面可以计算

ScaleDenominator=782715.17578125/0.00028=2795411342.075893

有了ScaleDenominator,对于任意实际地表长度,我们可以计算其在屏幕上的长度。如果再已知像素大小(已知dpi),那么地表实际坐标(x, y)就可以计算出像素坐标了(当然,原点和轴向要定义好,TopLeftCorner正好用得到,定义原点了)

下面总结根据ScaleDenominator计算分辨率的公式

Resolution=(1inch/dpi)×0.0254m/inch ×ScaleDenominator

= (0.0254*ScaleDenominator)/dpi

设定x轴由西向东,原点坐标(x0, y0),瓦片大小tileSize,那么对于实际坐标(x, y),计算其在屏幕上的列坐标为

col=floor((x-x0)/(tileSzie*Resolution))

可见,知道了ScaleDenominator和显示设备的dpi就可以计算某个坐标点的屏幕坐标了。

注:关于dpi的相关说明

1英寸=0.0254米,一般假设一个像素的边长为0.28mm=0.00028米。

那么此时dpi=0.0254/0.00028=90.714

二、描述文档(description XML file)

描述文档可用于请求具体的图层的数据集。

GetCapabilitiesUrl:即请求的能力文档的链接

Layer:要获取的图层的表示

Style:要获取的图层的样式

TileMatrixSet:要获取的图层的比例尺集合

DataWindow:要获取的图层的包围盒

BandsCount:波段/通道数,1个用于灰度数据,3个用于RGB,4个用于RGBA。(可选,默认为4)

UnsafeSSL:一般使用https的时候把这个设为true

其他的标签为默认值即可。

三、一些问题和难点

1.天地图的dpi为96,这与常见的dpi不一致

2.选中图层的包围盒应当与其TileMatrixSet一致

四、其他

1.关于restful与kvp

Restful风格的链接:https://maps.wien.gv.at/basemap/1.0.0/WMTSCapabilities.xml

Kvp风格的链接:

https://opencache.statkart.no/gatekeeper/gk/gk.open_wmts?service=WMTS&request=GetCapabilities

参考:

1.WMTS -- OGC Web Map Tile Service — GDAL documentation

2.WMTS服务初步理解与读取_wmts-china-CSDN博客

3.WMTS服务中TileMatrix 与 ScaleDenominator的理解-CSDN博客

4.WebGIS教程 标准 WMTS服务初步理解与读取

5.https://www.cnblogs.com/oloroso/p/9553207.html

6.22. 使用OGC/ISO协议 — QGIS Documentation 文档

  • 19
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值