返回顶部
首页 > 资讯 > 精选 >WMTS中的TileMatrix与ScaleDenominator是什么
  • 481
分享到

WMTS中的TileMatrix与ScaleDenominator是什么

2023-07-05 09:07:10 481人浏览 安东尼
摘要

今天小编给大家分享一下WMTS中的TileMatrix与ScaleDenominator是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一

今天小编给大家分享一下WMTS中的TileMatrix与ScaleDenominator是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

1. WMTS 中的 TileMatrix 是什么

这个其实就是一个“阵列”,形象的比喻就是一个“棋盘”,一张网格:

WMTS中的TileMatrix与ScaleDenominator是什么

因为我们学习线性代数的时候矩阵就和这玩意儿长得像,所以就被称作“瓦片阵列”,即 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:这个瓦片阵列的 ID

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

  • TileWidthTileHeight:瓦片的像素长宽,即 256 &times; 256 像素

  • MatrixWidthMatrixHeight:瓦片阵列的长宽;不理解的可以想象一下“矩阵”的长宽,代表这一级瓦片横向纵向跨度有多少个瓦片

最后一个没说的 ScaleDenominator翻译过来是 比例分母,也是本文重点要介绍的东西。

2. ScaleDenominator 是什么

在回答这个问题之前,我先提 2 个问题:

  • 在早些年最具代表性的 windows 系统使用的 96 PPI 像素的屏幕上,1 像素的尺寸是多少?

  • 一个瓦片中,1 像素表示多大经纬度或现实尺寸?

2.1. 一个像素的显示器物理尺寸是多大

回答第 1 个问题很简单,网上一搜大概就有,或者拿 23.8 英寸的 1080p 显示器大致算一下也行:

  • 8 英寸 1080p 显示器对角线约 2202.9 个像素

  • 8 英寸约为 604.52 毫米

所以 1 个像素的长宽大概是 604.52 / 2202.9 &asymp; 0.274 毫米。

同理,算出 27 寸 4k(3840 &times; 2160)显示器的像素尺寸约为 0.156 毫米。

随着技术进步,现在的显示器面板已经把这个值进一步提高了,27 英寸的 4K 显示器都很常见,物理像素尺寸进一步缩小,而 Windows 操作系统为了显示效果,会在高分辨率屏幕中使用缩放率来提高平滑度 &mdash;&mdash; 比如,我的 4K 分辨率 27 寸显示器就使用了 200% 缩放率,也即 4 个像素(长宽各缩放 200%,即 2 个像素 &times; 2 个像素)作为原来的 1 个像素显示,这样 3840 &times; 2160 的物理分辨率就会模拟成 1920 &times; 1080。

2.2. 瓦片图片的一个像素是多大

看第 2 个问题。

瓦片是有等级的,想知道瓦片 1 像素的尺寸,那么就势必知道两个因子:

  • 这瓦片长宽多少像素

  • 这瓦片占的总尺寸(长宽)

以 GeoServer 内置的 EPSG:4326 瓦片阵列集定义来看,第 0 级瓦片阵列有 1 行 2 列(MatrixWidthMatrixHeight),那么一个瓦片的东西跨度应为地球周长的一半:

WMTS中的TileMatrix与ScaleDenominator是什么

查资料得知地球赤道周长的值约为 400750170米,此 0 级瓦片东西向有 256 个像素,容易得知,每个像素为 (400750170 &divide; 2) &divide; 256 = 782715.17578125 米

现在有了上述的计算例子,就可以足够解释什么是 ScaleDenominator 了:

WMTS中的TileMatrix与ScaleDenominator是什么

这个值与 GeoServer 中第 0 级瓦片阵列的 ScaleDenominator279541132.0143589 仅差距不到 10,从误差角度看可以认为相等(地球赤道的大小可能采用的数值略不一样)。

从公式来看,这个比例就像是在说:0.00028 米(0.28 mm)的屏幕像素尺寸,实际上是地球表面的 782715.17578125 米,所以这个比例分母也可以这么理解:

WMTS中的TileMatrix与ScaleDenominator是什么

说人话,这个比例分母的含义就是 “地表距离和屏幕距离的比例尺”。

2.3. 为什么是 0.28 毫米

有人会疑问你这个 0.00028 米(0.28 毫米) 是怎么来的?在文章开头引用的规范中,规定了一个 标准渲染像素尺寸 的东西,即 0.28mm 作为一个像素的长宽。

而在 2.1 小节的实际计算中,传统高清显示器的像素尺寸也就差不多是这个数值,考虑到标准制定的时间和硬件背景,使用 0.28 毫米也不足为奇了。

以上就是“WMTS中的TileMatrix与ScaleDenominator是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: WMTS中的TileMatrix与ScaleDenominator是什么

本文链接: https://lsjlt.com/news/350776.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • WMTS中的TileMatrix与ScaleDenominator是什么
    今天小编给大家分享一下WMTS中的TileMatrix与ScaleDenominator是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一...
    99+
    2023-07-05
  • WMTS中TileMatrix与ScaleDenominator浅析
    目录正文1. WMTS 中的 TileMatrix 是什么2. ScaleDenominator 是什么2.1. 一个像素的显示器物理尺寸是多大2.2. 瓦片图片的一个像素是多大2....
    99+
    2023-03-06
    WMTS TileMatrix ScaleDenominator WMTS TileMatrix
  • php中==与===的区别是什么
    这篇文章主要讲解了“php中==与===的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中==与===的区别是什么”吧!一、“==”操作符“==”操作符是PHP中的等于操作符...
    99+
    2023-07-05
  • Java语言中&&与& ||与|的区别是什么
    1、运算符两边的变量为boolean变量时       先列出代码:public class Test { public static void main(String[] args) {...
    99+
    2023-05-31
    java
  • Python中==与is的区别是什么
    这篇文章主要介绍“Python中==与is的区别是什么”,在日常操作中,相信很多人在Python中==与is的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中==与is的区别是什么”的疑...
    99+
    2023-06-16
  • CSS与HTML中link与@import的区别是什么
    本篇内容介绍了“CSS与HTML中link与@import的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2024-04-02
  • JavaScript中DOM与BOM的区别与用法是什么
    本文小编为大家详细介绍“JavaScript中DOM与BOM的区别与用法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript中DOM与BOM的区别与用法是什么”文章能帮助大家解决疑惑,...
    99+
    2024-04-02
  • Node.js中path.resolve与path.join的区别与作用是什么
    本文小编为大家详细介绍“Node.js中path.resolve与path.join的区别与作用是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Node.js中path.resolve与path.join的区别与作用是什么”文章能帮助...
    99+
    2023-07-05
  • java中vector与list的区别是什么?
    vector和list的区别 ● vector的随机访问效率高,但在插入和删除时(不包括尾部)需要挪动数据,不易操作。 ● List的访问要遍历整个链表,它的随机访问效率低。但对数据的插入和删除操作等都比较方便,改变指针的指向即可。 ● l...
    99+
    2021-09-04
    java入门 java vector list
  • java中Byte与byte的区别是什么?
    byte和Bytebyte是java的基本数据类型,存储整型数据,占据1个字节(8 bits),能够存储的数据范围是-128~+127。Byte是java.lang中的一个类,目的是为基本数据类型byte进行封装。二者关系:Byte是byt...
    99+
    2021-03-11
    java教程 java Byte byte
  • SQLServer中EXEC与sp_executesql的区别是什么
    这篇文章将为大家详细讲解有关SQLServer中EXEC与sp_executesql的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。摘要1,EXE...
    99+
    2024-04-02
  • MySql中Blob与Text的区别是什么
    本篇文章给大家分享的是有关MySql中Blob与Text的区别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 BLOB是一个二进制大对...
    99+
    2024-04-02
  • PostgreSQL中HashAggregate与GroupAggregate的区别是什么
    本篇内容介绍了“PostgreSQL中HashAggregate与GroupAggregate的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处...
    99+
    2024-04-02
  • oracle中ADG与DG的区别是什么
    oracle中ADG与DG的区别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  DG与ADG的对比:DG只能用Real...
    99+
    2024-04-02
  • Oracle中OLAP 与 OLTP的作用是什么
    这期内容当中小编将会给大家带来有关Oracle中OLAP 与 OLTP的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 什么是OLTPOLTP,也叫联...
    99+
    2024-04-02
  • jQuery中this与$(this)的区别是什么
    本篇内容主要讲解“jQuery中this与$(this)的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jQuery中this与$(this)的区别是...
    99+
    2024-04-02
  • jQuery中readyState与status的区别是什么
    本篇内容介绍了“jQuery中readyState与status的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读...
    99+
    2024-04-02
  • CSS中import与link的区别是什么
    这篇文章主要介绍“CSS中import与link的区别是什么”,在日常操作中,相信很多人在CSS中import与link的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • java中next()与nextLine()的区别是什么
    java中next()与nextLine()的区别:next()不会获取字符前后的空格,只获取字符,而nextLine()会获取字符前后的空格。next()遇到空格/Tab键/回车截止获取过程,而nextLine()遇到回车键截止。next...
    99+
    2024-04-02
  • java中super与this的区别是什么
    java中super与this的区别:super是当前对象里面的父对象的引用,而this指的是当前对象的引用。super调用基类中的某一个构造函数,而this调用的是本类中另一种形成的构造函数。super是用来访问直接父类中被隐藏的父类中成...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作