其实有时间琢磨规范文档的话,倒也不必费时间自己琢磨,这篇算是一些口水话心得。
规范文档指路:OGC Standard - Two Demensional Tile Matrix Set #6. TileMatrixSet,对,并不是 WMTS 规范,而是更精确的 2D瓦片阵列集规范,它独立于 WMTS 规范而发布。
在我之前的文章《OGC WebGIS 常用服务标准速查》中有提过,这个其实就是一个“阵列”,形象的比喻就是一个“棋盘”,一张网格:
因为我们学习线性代数的时候矩阵就和这玩意儿长得像,所以就被称作“瓦片阵列”,即 TileMatrix
。而基于同一个坐标系的多个瓦片阵列,就被称作“瓦片阵列集”(或者类似的名字,你开心就好),即 TileMatrixSet
。
打开 WMTS 的 XML 能力文档,看看 EPSG:4326
坐标系的第 1 级瓦片阵列定义:
<TileMatrix>
<ows:Identifier>EPSG:4326:1</ows:Identifier>
<ScaleDenominator>1.3977056600717944E8</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4</MatrixWidth>
<MatrixHeight>2</MatrixHeight>
</TileMatrix>
这些属性一眼看过去很容易知道其含义:
Identifier
:这个瓦片阵列的 IDTopLeftCorner
:这个瓦片的左上角位置,此处是经纬度表达(基于 EPSG:4326
坐标系)TileWidth
、 TileHeight
:瓦片的像素长宽,即 256 × 256 像素MatrixWidth
、 MatrixHeight
:瓦片阵列的长宽;不理解的可以想象一下“矩阵”的长宽,代表这一级瓦片横向纵向跨度有多少个瓦片最后一个没说的 ScaleDenominator
,翻译过来是 比例分母,也是本文重点要介绍的东西。
在回答这个问题之前,我先提 2 个问题:
回答第 1 个问题很简单,网上一搜大概就有,或者拿 23.8 英寸的 1080p 显示器大致算一下也行:
所以 1 个像素的长宽大概是 604.52 / 2202.9 ≈ 0.274 毫米。
同理,算出 27 寸 4k(3840 × 2160)显示器的像素尺寸约为 0.156 毫米。
随着技术进步,现在的显示器面板已经把这个值进一步提高了,27 英寸的 4K 显示器都很常见,物理像素尺寸进一步缩小,而 Windows 操作系统为了显示效果,会在高分辨率屏幕中使用缩放率来提高平滑度 —— 比如,我的 4K 分辨率 27 寸显示器就使用了 200% 缩放率,也即 4 个像素(长宽各缩放 200%,即 2 个像素 × 2 个像素)作为原来的 1 个像素显示,这样 3840 × 2160 的物理分辨率就会模拟成 1920 × 1080。
看第 2 个问题。
瓦片是有等级的,想知道瓦片 1 像素的尺寸,那么就势必知道两个因子:
以 GeoServer 内置的 EPSG:4326
瓦片阵列集定义来看,第 0 级瓦片阵列有 1 行 2 列( MatrixWidth
和 MatrixHeight
),那么一个瓦片的东西跨度应为地球周长的一半:
查资料得知地球赤道周长的值约为 400750170米,此 0 级瓦片东西向有 256 个像素,容易得知,每个像素为 (400750170 ÷ 2) ÷ 256 = 782715.17578125 米。
现在有了上述的计算例子,就可以足够解释什么是 ScaleDenominator
了:
[ScaleDenominator_{0} = \frac{782715.17578125}{0.00028} = 2795411342.075892857 ]
这个值与 GeoServer 中第 0 级瓦片阵列的 ScaleDenominator
值 279541132.0143589 仅差距不到 10,从误差角度看可以认为相等(地球赤道的大小可能采用的数值略不一样)。
从公式来看,这个比例就像是在说:0.00028 米(0.28 mm)的屏幕像素尺寸,实际上是地球表面的 782715.17578125 米,所以这个比例分母也可以这么理解:
[\frac{地表实际尺寸}{ScaleDenominator}=像素尺寸 ]
说人话,这个比例分母的含义就是 “地表距离和屏幕距离的比例尺”。
有人会疑问你这个 0.00028 米(0.28 毫米) 是怎么来的?在文章开头引用的规范中,规定了一个 标准渲染像素尺寸 的东西,即 0.28mm 作为一个像素的长宽。
而在 2.1 小节的实际计算中,传统高清显示器的像素尺寸也就差不多是这个数值,考虑到标准制定的时间和硬件背景,使用 0.28 毫米也不足为奇了。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.cnblogs.com/onsummer/p/17179696.html
内容来源于网络,如有侵权,请联系作者删除!