GIS OGC之WMTS地图服务,通过Capabilities XML描述文档,获取matrixIds,origin,计算resolutions

GIS OGC之WMTS地图服务,通过Capabilities XML描述文档,获取matrixIds,origin,计算resolutions

需求:如何根据WMTS服务的Capabilities描述文档得到,openlayers调用wmts服务时的matrixIds,origin和resolutions参数

方法:

  1. GoogleMapsCompatible (EPSG:3857)、GoogleCRS84Quad (EPSG:4326)、CGCS2000(EPSG:4490)(4490与4326差异很小,可以直接使用4326)可以直接查Web地图切片(瓦片)服务(WMTS)简单配置文件给出的通用比例尺分辨率(2.3.1节,2.2.2节)
  2. 其他或自定义坐标系(投影),通过WMTS服务的Capabilities描述文档中ows:Identifier、TopLeftCorner、ScaleDenominator节点进行计算(2.3.3节)

1 OGC

OGC ——开放地理空间信息联盟(Open Geospatial Consortium), 是一个国际组织,致力于制定和推广开放的地理空间标准和规范。这些标准涵盖了地理信息系统(GIS)、遥感、地图服务和其他地理空间技术。OGC的目标是提高不同系统和应用之间的数据互操作性和共享性。而这些所谓的标准其实就是一些接口或编码的技术文档,不同的厂商、各种 GIS 产品都可以对照这些文档来定义开放服务的接口、空间数据存储的编码、空间操作的方法。

OGC 已经是一个比较“官方”的标准化机构了,它不但包括了 ESRI、Google、Oracle 等业界强势企业作为其成员,同时还和 W3C、ISO、IEEE 等协会或组织结成合作伙伴关系。因此,OGC 的标准虽然并不带有强制性,但是因为其背景和历史的原因,它所制定的标准天然地具有一定的权威性。

OGC 目前提供的标准多达几十种,包括我们常用到的 WMS、WFS、WCS、WMTS 等等,还有一些地理数据信息的描述文档,比如 KML(Keyhole标记语言)、SFS(简单对象描述)、GML(地理标记语言)、SLD(地理数据符号化)等。

服务全称
WMSWeb Map Service(网络地图服务)
WFSWeb Feature Service(网络要素服务)
WCSWeb Coverage Service(网络覆盖服务)
WMTSWeb Map Tile Service(网络地图切片(瓦片)服务)WMTS 是 OGC 首个支持 restful 风格的服务标准

2 WMTS

2.1 定义

WMTS(Web Map Tile Service)官网解释是"wmts定义了一组接口,用于使用具有预定义内容、范围和分辨率的分块图像对空间参考数据的地图分块进行基于Web的请求",简单说来wmts是 OGC 提出的可视化标准之一,用于在网络上高效地分发和显示地图切片(瓦片)。WMTS 通过将地图分割成固定大小的切片(瓦片)(tiles),并允许客户端按需请求这些切片(瓦片),从而实现了地图数据的快速加载和高效的缓存机制。

2.2 规范解析

首先在OGC官网下载WMTS实现标准文档(OpenGIS Web Map Tile Service Implementation Standard)

在这里插入图片描述

2.2.1 实现操作

  • GetCapabilities(必须实现,所以wmts都会有Capabilities文档用于说明各种参数)
    GetCapabilities操作获取Capabilities文档,该文档描述了如何识别WMTS资源或生成WMTS请求操作。元数据的主要内容是TileMatrixSet摘要信息和详细内容,如边界框、支持的坐标参考系(CRS)、是否有已知的刻度集以及关于多个级别的TileMatrix数据。如果有一个可选的“主题”部分,则无需为层属性指定任何继承规则。

  • GetTile(必须实现,所以才能让客户端请求到切片(瓦片))
    GetTile操作获取切片(瓦片)资源,以预定义格式请求特定tileMatrix集的特定tileMatrix。图块资源表示一个图层的地图表达结果的一小块。

  • GetFeatureInfo(可选)
    GetFeatureInfo操作获取要素信息(FeatureInfo)资源。该资源提供了图块地图中某一特定像素位置处地物要素的信息,与 WMS 中 GetFeatureInfo 操作的行为相似,以文本形式通过提供比如专题属性名称及其取值的方式返回相关信息。

在这里插入图片描述

2.2.2 Capabilities文档

2.2.3.1 Capabilities文档结构

Capabilities文档是xml结构形式,文档描述了服务中可用的资源以及对接该服务的必备条件,以下这几个节点信息是从能力文件中需要获取的对接WMTS服务的关键参数。
在这里插入图片描述

以天地图Capabilities文档为例,重点解释contents下的节点

2.2.3.1.1 layer(图层)
  • WMTS文档定义

在这里插入图片描述
在这里插入图片描述

  • 天地图Capabilities文档
    在这里插入图片描述
概念解释
Title图层名
Identifier图层标识符
WGS84BoundingBox,BoundingBox图层地图范围(纬度,经度)
Style图层的样式
TileMatrixSetLink矩阵集链接,这部分只提供比例尺集合的标识符,然后需要到TileMatrixSet中去索引到对应的比例尺集合

根据不同服务还可能有Format、ResourceURL等字段

2.2.3.1.2 TileMatrixSet(切片(瓦片)矩阵集)

WMTS规定使用切片(瓦片)矩阵集(Tile Matrix Set)来表示切割后的地图,如下图所示。切片(瓦片)就是包含地理数据的矩形影像,一幅地图按一定的切片(瓦片)大小被切割成多个切片(瓦片),形成切片(瓦片)矩阵,一个或多个切片(瓦片)矩阵即组成切片(瓦片)矩阵集。不同的切片(瓦片)矩阵具有不同的分辨率,每个切片(瓦片)矩阵由切片(瓦片)矩阵标识符(一般为切片(瓦片)矩阵的序号,分辨率最低的一层为第0层,依次递增)进行标识。

在这里插入图片描述

可以看到,不同级别的切片(瓦片)组合起来类似金字塔型矩阵,切片(瓦片)数量由少逐渐变多,分辨率(resolution)由粗略到精细,比例尺(scale denominator)由高到低

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

在这里插入图片描述

概念解释举例
左上角(TopLeftCorner)WMTS 标准中,TopLeftCorner 是描述矩阵集(TileMatrixSet)的左上角坐标的字符序列,由坐标X和坐标Y组成。航空和海运部门通常期望纬度在经度之前。虽然没有标准明确规定纬度必须在经度之前,但是一般来说都会采用纬度在经度之前的顺序。比如:天地图Capabilities文档中的矩阵集中<TopLeftCorner>90.0 -180.0</TopLeftCorner>中应该是先纬度后经度的顺序
边界框的左上角坐标(TileMatrixmMinX,TileMatrixMaxY)注意边界框的原点是左下角
矩阵的宽(MatrixWidth)和高(MatrixHeight)在row方向和col方向上的切片(瓦片)数
切片(瓦片)的行(TileRow)和列(TileCol)行列值分别从切片(瓦片)矩阵左上角点所在的切片(瓦片)开始算起,起始行列值是(0,0),依次向下向右增加
切片(瓦片)的宽(TileWidth)和高(TileHeight)一般是256*256,512*512
  • WMTS文档定义

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 天地图Capabilities文档

在这里插入图片描述

概念解释
Identifier当前级别矩阵的ID
TopLeftCorner当前切片(瓦片)的左上角位置,此处是经纬度直投影
TileWidth、TileHeight切片(瓦片)的像素长宽,即 256 × 256 像素
MatrixWidth、MatrixHeight代表这一级切片(瓦片)横向纵向跨度有多少个切片(瓦片)
ScaleDenominator比例尺分母(直译,其值是一个像素代表的实际距离与像素尺寸的比值)

2.3 分辨率(resolution)获取

WMTS 服务器只提供有限种坐标系和有限种比例尺的服务,为了提高客户端和服务器的互操作能力,WMTS 提出通用比例尺集(Well-known scale set)的概念。通用比例尺集是 WMTS 服务器之间的一个协定,由一个公共的坐标参考系统和一组公共的比例尺集合组成。

通用比例尺集有:

  • GoogleCRS84Quad
  • GoogleMapsCompatible
  • GlobalCRS84Scale
  • GlobalCRS84Pixel
// 天地图经纬度投影分辨率可以直接使用
const GoogleCRS84QuadResolution = [1.40625000000000, 0.703125000000000, 0.351562500000000, 0.175781250000000,0.0878906250000000, 0.0439453125000000, 0.0219726562500000, 0.0109863281250000,0.00549316406250000, 0.00274658203125000, 0.00137329101562500, 0.000686645507812500,0.000343322753906250, 0.000171661376953125, 0.0000858306884765625,0.0000429153442382812, 0.0000214576721191406, 0.0000107288360595703, 0.00000536441802978516
];// 天地图莫卡托投影分辨率可以直接使用
const GoogleMapsCompatibleResolutions = [156543.0339280410, 78271.51696402048, 39135.75848201023,19567.87924100512, 9783.939620502561, 4891.969810251280, 2445.984905125640,1222.992452562820, 611.4962262814100, 305.7481131407048, 152.8740565703525,76.43702828517624, 38.21851414258813, 19.10925707129406, 9.554628535647032,4.777314267823516, 2.388657133911758, 1.194328566955879, 0.5971642834779395
];const GlobalCRS84PixelResolution= [240000, 120000, 60000, 40000,20000, 10000, 4000, 2000,1000, 500, 166, 100,33, 16, 10, 3,1, 0.33
];const GlobalCRS84ScaleResolutions = [1.25764139776733, 0.628820698883665, 0.251528279553466,0.125764139776733, 0.0628820698883665, 0.0251528279553466, 0.0125764139776733, 0.00628820698883665,0.00251528279553466, 0.00125764139776733, 0.000628820698883665, 0.000251528279553466,0.000125764139776733, 0.0000628820698883665, 0.0000251528279553466, 0.0000125764139776733,0.00000628820698883665, 0.00000251528279553466, 0.00000125764139776733, 0.000000628820698883665,0.00000025152827955346
];

根据Web地图切片(瓦片)服务(WMTS)简单配置文件,可以查到两种投影的分辨率
在这里插入图片描述

2.3.1 GoogleMapsCompatible(EPSG::3857)

<TileMatrixSet><ows:Title>Google Maps Compatible for the World</ows:Title><ows:Identifier>WorldWebMercatorQuad</ows:Identifier><ows:BoundingBox crs=“urn:ogc:def:crs:EPSG::3857”><ows:LowerCorner>-20037508.3427892 -20037508.3427892</ows:LowerCorner><ows:UpperCorner>20037508.3427892 20037508.3427892</ows:UpperCorner></ows:BoundingBox><ows:SupportedCRS>urn:ogc:def:crs:EPSG::3857</ows:SupportedCRS><WellKnownScaleSet>urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible</WellKnownScaleSet><TileMatrix><ows:Identifier>0</ows:Identifier><ScaleDenominator>559082264.0287178</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>1</MatrixWidth><MatrixHeight>1</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>1</ows:Identifier><ScaleDenominator>279541132.0143589</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>2</MatrixWidth><MatrixHeight>2</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>2</ows:Identifier><ScaleDenominator>139770566.0071794</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>4</MatrixWidth><MatrixHeight>4</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>3</ows:Identifier><ScaleDenominator>69885283.00358972</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>8</MatrixWidth><MatrixHeight>8</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>4</ows:Identifier><ScaleDenominator>34942641.50179486</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>16</MatrixWidth><MatrixHeight>16</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>5</ows:Identifier><ScaleDenominator>17471320.75089743</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>32</MatrixWidth><MatrixHeight>32</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>6</ows:Identifier><ScaleDenominator>8735660.375448715</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>64</MatrixWidth><MatrixHeight>64</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>7</ows:Identifier><ScaleDenominator>4367830.187724357</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>128</MatrixWidth><MatrixHeight>128</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>8</ows:Identifier><ScaleDenominator>2183915.093862179</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>256</MatrixWidth><MatrixHeight>256</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>9</ows:Identifier><ScaleDenominator>1091957.546931089</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>512</MatrixWidth><MatrixHeight>512</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>10</ows:Identifier><ScaleDenominator>545978.7734655447</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>1024</MatrixWidth><MatrixHeight>1024</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>11</ows:Identifier><ScaleDenominator>272989.3867327723</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>2048</MatrixWidth><MatrixHeight>2048</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>12</ows:Identifier><ScaleDenominator>136494.6933663862</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>4096</MatrixWidth><MatrixHeight>4096</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>13</ows:Identifier><ScaleDenominator>68247.34668319309</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>8192</MatrixWidth><MatrixHeight>8192</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>14</ows:Identifier><ScaleDenominator>34123.67334159654</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>16384</MatrixWidth><MatrixHeight>16384</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>15</ows:Identifier><ScaleDenominator>17061.83667079827</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>32768</MatrixWidth><MatrixHeight>32768</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>16</ows:Identifier><ScaleDenominator>8530.918335399136</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>65536</MatrixWidth><MatrixHeight>65536</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>17</ows:Identifier><ScaleDenominator>4265.459167699568</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>131072</MatrixWidth><MatrixHeight>131072</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>18</ows:Identifier><ScaleDenominator>2132.729583849784</ScaleDenominator><TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>262114</MatrixWidth><MatrixHeight>262114</MatrixHeight></TileMatrix></TileMatrixSet>

参数如下:

CRS: urn:ogc:def:crs:EPSG:6.18:3:3857

WGS 84 / Pseudo-Mercator

BBOX LowerCorner: -20037508.3427892 -20037508.3427892

BBOX UpperCorner: 20037508.3427892 20037508.3427892

WellKnownScaleSet:

urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible

TopLeftCorner: -20037508.3427892 20037508.3427892

TileWidth: 256

TileHeight: 256

Zoom level idScale DenominatorPixel Size (m)Matrix WidthMatrix Height
0559082264.0287178156543.033928041011
1279541132.014358978271.5169640204822
2139770566.007179439135.7584820102344
369885283.0035897219567.8792410051288
434942641.501794869783.9396205025611616
517471320.750897434891.9698102512803232
68735660.3754487152445.9849051256406464
74367830.1877243571222.992452562820128128
82183915.093862179611.4962262814100256256
91091957.546931089305.7481131407048512512
10545978.7734655447152.874056570352510241024
11272989.386732772376.4370282851762420482048
12136494.693366386238.2185141425881340964096
1368247.3466831930919.1092570712940681928192
1434123.673341596549.5546285356470321638416384
1517061.836670798274.7773142678235163276832768
168530.9183353991362.3886571339117586553665536
174265.4591676995681.194328566955879131072131072
182132.7295838497840.5971642834779395262144262144

其中:

  • Pixel Size单位是米(m)
  • TopLeftCorner即为ol中的origin数组
  • 各级Zoom level id集合起来即为ol中的matrixIds数组
  • 各级Pixel Size (m)集合起来即为ol中的resolutions数组
  • 天地图莫卡托投影虽然各级Scale Denominator和上面GoogleMapsCompatible(EPSG的各级Scale Denominator不一样,但是计算出来的分辨率是一样的,也就是上面Pixel Size (degrees)数组(因为都是EPSG:3857)

2.3.2 GoogleCRS84Quad (可以理解为EPSG:4326)

 <TileMatrixSet><ows:Title>CRS84 for the World</ows:Title><ows:Identifier>WorldCRS84Quad</ows:Identifier><ows:BoundingBox crs=“urn:ogc:def:crs:OGC:1.3:CRS84”><ows:LowerCorner>-180 -90</ows:LowerCorner><ows:UpperCorner>180 90</ows:UpperCorner></ows:BoundingBox><ows:SupportedCRS>urn:ogc:def:crs:OGC:1.3:CRS84</ows:SupportedCRS><WellKnownScaleSet>urn:ogc:def:wkss:OGC:1.0:GoogleCRS84Quad</WellKnownScaleSet><TileMatrix><ows:Identifier>-1</ows:Identifier><ScaleDenominator>559082264.0287178</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>1</MatrixWidth><MatrixHeight>1</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>0</ows:Identifier><ScaleDenominator>279541132.0143589</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>2</MatrixWidth><MatrixHeight>1</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>1</ows:Identifier><ScaleDenominator>139770566.0071794</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>4</MatrixWidth><MatrixHeight>2</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>2</ows:Identifier><ScaleDenominator>69885283.00358972</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>8</MatrixWidth><MatrixHeight>4</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>3</ows:Identifier><ScaleDenominator>34942641.50179486</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>16</MatrixWidth><MatrixHeight>8</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>4</ows:Identifier><ScaleDenominator>17471320.75089743</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>32</MatrixWidth><MatrixHeight>16</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>5</ows:Identifier><ScaleDenominator>8735660.375448715</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>64</MatrixWidth><MatrixHeight>32</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>6</ows:Identifier><ScaleDenominator>4367830.187724357</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>128</MatrixWidth><MatrixHeight>64</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>7</ows:Identifier><ScaleDenominator>2183915.093862179</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>256</MatrixWidth><MatrixHeight>128</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>8</ows:Identifier><ScaleDenominator>1091957.546931089</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>512</MatrixWidth><MatrixHeight>256</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>9</ows:Identifier><ScaleDenominator>545978.7734655447</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>1024</MatrixWidth><MatrixHeight>512</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>10</ows:Identifier><ScaleDenominator>272989.3867327723</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>2048</MatrixWidth><MatrixHeight>1024</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>11</ows:Identifier><ScaleDenominator>136494.6933663862</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>4096</MatrixWidth><MatrixHeight>2048</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>12</ows:Identifier><ScaleDenominator>68247.34668319309</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>8192</MatrixWidth><MatrixHeight>4096</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>13</ows:Identifier><ScaleDenominator>34123.67334159654</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>16384</MatrixWidth><MatrixHeight>8192</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>14</ows:Identifier><ScaleDenominator>17061.83667079827</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>32768</MatrixWidth><MatrixHeight>16384</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>15</ows:Identifier><ScaleDenominator>8530.918335399136</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>65536</MatrixWidth><MatrixHeight>32768</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>16</ows:Identifier><ScaleDenominator>4265.459167699568</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>131072</MatrixWidth><MatrixHeight>65536</MatrixHeight></TileMatrix><TileMatrix><ows:Identifier>17</ows:Identifier><ScaleDenominator>2132.729583849784</ScaleDenominator><TopLeftCorner>-180 90</TopLeftCorner><TileWidth>256</TileWidth><TileHeight>256</TileHeight><MatrixWidth>262144</MatrixWidth><MatrixHeight>131072</MatrixHeight></TileMatrix></TileMatrixSet>

参数如下:

CRS: urn:ogc:def:crs:OGC:1.3:CRS84 CRS84

BBOX LowerCorner: -180 -90

BBOX UpperCorner: 180 90

WellKnownScaleSet: urn:ogc:def:wkss:OGC:1.0:GoogleCRS84Quad

TopLeftCorner: -180 90

TileWidth: 256

TileHeight: 256

Zoom level idScale DenominatorPixel Size (degrees)Matrix WidthMatrix Height
-1559082264.02871781.4062500000000011
0279541132.01435890.70312500000000021
1139770566.00717940.35156250000000042
269885283.003589720.17578125000000084
334942641.501794868.78906250000000 *10-2168
417471320.750897434.39453125000000 *10-23216
58735660.3754487152.19726562500000 *10-26432
64367830.1877243571.09863281250000 *10-212864
72183915.0938621795.49316406250000 *10-3256128
81091957.5469310892.74658203125000 *10-3512256
9545978.77346554471.37329101562500 *10-31024512
10272989.38673277236.86645507812500 *10-420481024
11136494.69336638623.43322753906250 *10-440962048
1268247.346683193091.71661376953125 *10-481924096
1334123.673341596548.58306884765625 *10-5163848192
1417061.836670798274.29153442382812 *10-53276816384
158530.9183353991362.14576721191406 *10-56553632768
164265.4591676995681.07288360595703 *10-513107265536
172132.7295838497845.36441802978516 *10-6262144131072

其中:

  • Pixel Size单位是度(degrees)
  • TopLeftCorner即为ol中的origin数组
  • 各级Zoom level id集合起来即为ol中的matrixIds数组
  • 各级Pixel Size (degrees)集合起来即为ol中的resolutions数组
  • 天地图经纬度投影虽然各级Scale Denominator和上面GoogleCRS84Quad的各级Scale Denominator不一样,但是计算出来的分辨率是一样的(因为都是EPSG:4326),也就是上面Pixel Size (degrees)数组

2.3.3 自定义坐标系(投影)

2.3.3.1 查看Capabilities描述文档

根据前面的规范解析,WMTS服务必须实现GetCapabilities操作,也就是一定有一个描述文档,一般访问路径是这样的格式http://example.com/wmts?request=GetCapabilities,查看中的TileMatrixSet节点下参数,如下图:

在这里插入图片描述

  • TopLeftCorner即为ol中的origin数组(注意,如果是经纬度投影,顺序是纬度经度,origin顺序是经度纬度)
  • 各级ows:Identifier集合起来即为ol中的matrixIds数组(根据文档,ows:Identifier为-1的可以删除)
  • ScaleDenominator集合起来经过计算后才能得到ol中的resolutions数组

**分辨率(resolution)的计算**

  • 地图分辨率resolution,也称地面分辨率(Ground Resolution)或空间分辨率(Spatial Resolution),表示屏幕单位长度(像素)所代表的实际距离(米),即屏幕1像素代表实际距离多少米

    公式: 地图分辨率 = 实际距离 ( 米 ) 屏幕像素数 ( 像素 ) 地图分辨率 =\frac{实际距离(米)}{屏幕像素数(像素)} 地图分辨率=屏幕像素数(像素)实际距离()

  • 屏幕分辨率(dpi)是指屏幕上1英寸长度内包含的像素数量

    公式: 屏幕分辨率 = 屏幕像素数 ( 像素 ) 屏幕上距离 ( 英寸 ) 屏幕分辨率=\frac{屏幕像素数(像素)}{屏幕上距离(英寸)} 屏幕分辨率=屏幕上距离(英寸)屏幕像素数(像素)

  • 比例尺是指屏幕地图上1单位长度对应实际地理中多少单位长度,即屏幕地图上距离和实际距离之比,屏幕地图上距离和实际距离的单位一致(可以是米、英寸等等) (无单位)

    公式: 比例尺 = 屏幕地图上距离 实际距离 比例尺=\frac{屏幕地图上距离}{实际距离} 比例尺=实际距离屏幕地图上距离

    由此得到:

    公式: 比例尺分母 ( S c a l e D e n o m i n a t o r ) = 1 比例尺 = 实际距离 屏幕地图上距离 = 实际距离 屏幕上距离 (无单位) 比例尺分母(Scale Denominator)=\frac{1}{比例尺}=\frac{实际距离}{屏幕地图上距离}=\frac{实际距离}{屏幕上距离} (无单位) 比例尺分母(ScaleDenominator)=比例尺1=屏幕地图上距离实际距离=屏幕上距离实际距离(无单位)

    综上: 地图分辨率 = 实际距离 ( 米 ) 屏幕像素数 ( 像素 ) = 比例尺分母 ∗ 屏幕上地图距离(米) 屏幕像素数 ( 像素 ) = 比例尺分母 ∗ (屏幕上地图距离(英寸) ∗ 0.0254 (米 / 英寸)) 屏幕像素数 ( 像素 ) = 比例尺分母 ∗ 0.0254 (米 / 英寸) ∗ 屏幕像素数 ( 像素 ) 屏幕分辨率 ( 像素 / 英寸 ) ∗ 屏幕像素数 ( 像素 ) = 比例尺分母 ∗ 0.0254 屏幕分辨率 ( 米 / 像素 ) 地图分辨率 =\frac{实际距离(米)}{屏幕像素数(像素)}=\frac{比例尺分母 * 屏幕上地图距离(米)}{屏幕像素数(像素)} = \frac{比例尺分母 * (屏幕上地图距离(英寸)* 0.0254(米/英寸))}{屏幕像素数(像素)}=\frac{比例尺分母 * 0.0254(米/英寸)* 屏幕像素数 (像素)}{屏幕分辨率 (像素/英寸) * 屏幕像素数(像素)} =\frac{比例尺分母 * 0.0254}{屏幕分辨率} (米/像素) 地图分辨率=屏幕像素数(像素)实际距离()=屏幕像素数(像素)比例尺分母屏幕上地图距离(米)=屏幕像素数(像素)比例尺分母(屏幕上地图距离(英寸)0.0254(米/英寸))=屏幕分辨率(像素/英寸)屏幕像素数(像素)比例尺分母0.0254(米/英寸)屏幕像素数(像素)=屏幕分辨率比例尺分母0.0254(/像素)

    如果使用的(EPSG:4326)那么分辨率还需要进一步转换为(度/像素),用地球的周长除以360°可以得到一度是多少米,即:

    地图分辨率 = 比例尺分母 ∗ 0.0254 屏幕分辨率 ∗ ( M a t h . P I ∗ 2 ∗ 地球半径 / 360 ° ) ( 度 / 像素 ) 地图分辨率 =\frac{比例尺分母 * 0.0254}{屏幕分辨率 *(Math.PI * 2 * 地球半径 / 360°)} (度/像素) 地图分辨率=屏幕分辨率Math.PI2地球半径/360°比例尺分母0.0254(/像素)

    一般的WMTS服务的DPI= 96, (EPSG:4326)的地球半径=6378137

由此,可以计算出每一级的分辨率,比如天地图经纬度投影,

<Capabilities xmlns="http://www.opengis.net/wmts/1.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0.0/wmtsGetCapabilities_response.xsd" version="1.0.0">
<script/>
<ows:ServiceIdentification>
<ows:Title>在线地图服务</ows:Title>
<ows:Abstract>基于OGC标准的地图服务</ows:Abstract>
<ows:Keywords>
<ows:Keyword>OGC</ows:Keyword>
</ows:Keywords>
<ows:ServiceType codeSpace="wmts"/>
<ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
<ows:Fees>none</ows:Fees>
<ows:AccessConstraints>none</ows:AccessConstraints>
</ows:ServiceIdentification>
<ows:ServiceProvider>
<ows:ProviderName>国家基础地理信息中心</ows:ProviderName>
<ows:ProviderSite>http://www.tianditu.gov.cn</ows:ProviderSite>
<ows:ServiceContact>
<ows:IndividualName>Mr Wang</ows:IndividualName>
<ows:PositionName>Software Engineer</ows:PositionName>
<ows:ContactInfo>
<ows:Phone>
<ows:Voice>010-63881203</ows:Voice>
<ows:Facsimile>010-63881203</ows:Facsimile>
</ows:Phone>
<ows:Address>
<ows:DeliveryPoint>北京市海淀区莲花池西路28号</ows:DeliveryPoint>
<ows:City>北京市</ows:City>
<ows:AdministrativeArea>北京市</ows:AdministrativeArea>
<ows:Country>中国</ows:Country>
<ows:PostalCode>100830</ows:PostalCode>
<ows:ElectronicMailAddress>tdt@ngcc.cn</ows:ElectronicMailAddress>
</ows:Address>
<ows:OnlineResource xlink:type="simple" xlink:href="http://www.tianditu.gov.cn"/>
</ows:ContactInfo>
</ows:ServiceContact>
</ows:ServiceProvider>
<ows:OperationsMetadata>
<ows:Operation name="GetCapabilities">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://t0.tianditu.gov.cn/img_c/wmts?">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>KVP</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
<ows:Operation name="GetTile">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://t0.tianditu.gov.cn/img_c/wmts?">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>KVP</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
</ows:HTTP>
</ows:DCP>
</ows:Operation>
</ows:OperationsMetadata>
<Contents>
<Layer>
<ows:Title>img</ows:Title>
<ows:Abstract>img</ows:Abstract>
<ows:Identifier>img</ows:Identifier>
<ows:WGS84BoundingBox>
<ows:LowerCorner>-180.0 -90.0</ows:LowerCorner>
<ows:UpperCorner>180.0 90.0</ows:UpperCorner>
</ows:WGS84BoundingBox>
<ows:BoundingBox>
<ows:LowerCorner>-180.0 -90.0</ows:LowerCorner>
<ows:UpperCorner>180.0 90.0</ows:UpperCorner>
</ows:BoundingBox>
<Style>
<ows:Identifier>default</ows:Identifier>
</Style>
<Format>tiles</Format>
<TileMatrixSetLink>
<TileMatrixSet>c</TileMatrixSet>
</TileMatrixSetLink>
</Layer>
<TileMatrixSet>
<ows:Identifier>c</ows:Identifier>
<ows:SupportedCRS>urn:ogc:def:crs:EPSG::4490</ows:SupportedCRS>
<TileMatrix>
<ows:Identifier>1</ows:Identifier>
<ScaleDenominator>2.958293554545656E8</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>2</ows:Identifier>
<ScaleDenominator>1.479146777272828E8</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4</MatrixWidth>
<MatrixHeight>2</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>3</ows:Identifier>
<ScaleDenominator>7.39573388636414E7</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8</MatrixWidth>
<MatrixHeight>4</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>4</ows:Identifier>
<ScaleDenominator>3.69786694318207E7</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16</MatrixWidth>
<MatrixHeight>8</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>5</ows:Identifier>
<ScaleDenominator>1.848933471591035E7</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32</MatrixWidth>
<MatrixHeight>16</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>6</ows:Identifier>
<ScaleDenominator>9244667.357955175</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>64</MatrixWidth>
<MatrixHeight>32</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>7</ows:Identifier>
<ScaleDenominator>4622333.678977588</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>128</MatrixWidth>
<MatrixHeight>64</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>8</ows:Identifier>
<ScaleDenominator>2311166.839488794</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>256</MatrixWidth>
<MatrixHeight>128</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>9</ows:Identifier>
<ScaleDenominator>1155583.419744397</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>512</MatrixWidth>
<MatrixHeight>256</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>10</ows:Identifier>
<ScaleDenominator>577791.7098721985</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1024</MatrixWidth>
<MatrixHeight>512</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>11</ows:Identifier>
<ScaleDenominator>288895.85493609926</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2048</MatrixWidth>
<MatrixHeight>1024</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>12</ows:Identifier>
<ScaleDenominator>144447.92746804963</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4096</MatrixWidth>
<MatrixHeight>2048</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>13</ows:Identifier>
<ScaleDenominator>72223.96373402482</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8192</MatrixWidth>
<MatrixHeight>4096</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>14</ows:Identifier>
<ScaleDenominator>36111.98186701241</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16384</MatrixWidth>
<MatrixHeight>8192</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>15</ows:Identifier>
<ScaleDenominator>18055.990933506204</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32768</MatrixWidth>
<MatrixHeight>16384</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>16</ows:Identifier>
<ScaleDenominator>9027.995466753102</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>65536</MatrixWidth>
<MatrixHeight>32768</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>17</ows:Identifier>
<ScaleDenominator>4513.997733376551</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>131072</MatrixWidth>
<MatrixHeight>65536</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>18</ows:Identifier>
<ScaleDenominator>2256.998866688275</ScaleDenominator>
<TopLeftCorner>90.0 -180.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>262144</MatrixWidth>
<MatrixHeight>131072</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
</Contents>
</Capabilities>

可以得到ol的wmts参数:

 const origin= [90,-180]const matrixIds= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]const resolutions=[2.958293554545656e8, 1.479146777272828e8, 7.39573388636414e7, 3.69786694318207e7,1.848933471591035e7, 9244667.357955175, 4622333.678977588, 2311166.839488794,1155583.419744397, 577791.7098721985, 288895.85493609926, 144447.92746804963,72223.96373402482, 36111.98186701241, 18055.990933506204, 9027.995466753102,4513.997733376551, 2256.998866688275].map(item=> 0.0254 * item / (96 * (Math.PI * 2 * 6378137 / 360)))  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/142928.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【C++二叉树】JZ36 二叉搜索树与双向链表

二叉搜索树与双向链表_牛客题霸_牛客网 (nowcoder.com) 思路分析&#xff1a; 根据题目要求可以看出将二叉搜索树转换为排序的双向链表就是中序遍历二叉搜索树。在中序遍历的过程中将前后节点链起来即可。左指针指向前一个&#xff0c;右指针指向后一个。中序遍历是递归实现的&…

linux下的日志编写

1、日志初始化创建 2、日志写入 3、日志关闭 log.c #include "log.h"static log_t LOG;//初始化日志文件&#xff0c;在当前目录创建日志文件 int log_init(char *pdirname) {time_t t;struct tm *ptm NULL;char filepath[64] {0};int ret 0;time(&t);ptm …

资源创建方式

kubernetes支持两种创建资源的方式&#xff1a; 用kubectl命令直接创建&#xff0c;比如&#xff1a;kubectl run nginx-deployment --imagenginx1.7.9 --replicas2&#xff0c;在命令行中通过参数指定资源的属性 通过配置文件和kubectl apply创建&#xff0c;创建nginx.yml文…

Apache SeaTunnel Zeta引擎源码解析(三) Server端接收任务的执行流程

作者&#xff1a;刘乃杰 编辑整理&#xff1a;曾辉 引入 本系列文章是基于 Apache SeaTunnel 2.3.6版本&#xff0c;围绕Zeta引擎给大家介绍其任务是如何从提交到运行的全流程&#xff0c;希望通过这篇文档&#xff0c;对刚刚上手SeaTunnel的朋友提供一些帮助。 我们整体的文…

物联网行业中心跳机制的介绍以及如何实现

一 概述 心跳机制出现在TCP长连接中&#xff0c;客户端和服务端之间定时发送一种特殊的数据包通知对方还在线&#xff0c;以确保TCP连接地可靠性&#xff0c;有可能TCP连接由于某些原因&#xff08;例如网线被拔了&#xff0c;突然断电&#xff09;导致客户端断了&#xff0c;…

WINDOWS AGENTARENA:EVALUATING MULTI-MODAL OS AGENTS AT SCALE论文学习

文章开头说现有的agent都是局限于特定领域&#xff08;什么网络问答啊&#xff0c;仅限文字啊&#xff0c;仅限于某一个app啊&#xff09;这样的&#xff0c;本文的工作主打一个贴近用户使用场景&#xff0c;用户用什么软件&#xff0c;看什么网页&#xff0c;本文的模型就用什…

1×1卷积核【super star 卷积核】

一、11卷积的作用 我们先来给出11卷积的一般作用&#xff0c;如下所示&#xff1a; • 跨通道的特征整合 • 特征通道的升维与降维 • 减少权重参数&#xff08;卷积核参数&#xff09; 【 简化模型 】 1.1 特征通道的升维与降维/跨通道的特征整合/简化模型 输入数据&…

字幕编辑用什么软件好?盘点国内外7款视频加字幕软件,简单高效!

视频添加字幕被认为是让观众更好理解您在视频中讲述内容的最佳和最常见的方式。例如&#xff0c;您可以给视频中的某些文字添加不同的颜色&#xff0c;以帮助观众识别视频中的角色。然而&#xff0c;在制作视频过程中&#xff0c;添加字幕往往是个耗时耗力的任务。因此&#xf…

五种数据库特性对比(Redis/Mysql/SQLite/ES/MongoDB)

做后端开发的程序员基本都要学会数据库的相关知识。 1、关系型数据 今天就着这段时间了解大模型的事需要牵扯到是我们接触最多的、也是入门后端必学的关系型数据库。在关系型数据库中&#xff0c;数据以表的形式进行组织和存储&#xff0c;每个表就像一个 Excel 表格&#xf…

火山引擎数智平台:高性能ChatBI的技术解读和落地实践

导读&#xff1a;大模型能力的发展和成熟&#xff0c;催生出新一代智能化 BI—— ChatBI&#xff0c;即通过自然语言处理&#xff08;NLP&#xff09;与大型语言模型&#xff08;LLMs&#xff09;的结合&#xff0c;极大简化数据分析过程&#xff0c;提高效率并降低分析门槛。火…

MacOS安装MAT教程

MAT下载地址MAT下载地址MAT下载地址MAT下载地址 如果不知道你的芯片类型, 可以执行如下命令 uname -m

荣誉 | 分贝通入选2024「Cloud 100 China」

近日,2024 Cloud 100 China 榜单于美高梅酒店正式发布,这是靖亚资本和崔牛会联合推出的第三届榜单。 全球商旅管理、企业支出全流程管控、数据BI全方位降本、AI赋能高效出行体验.......近年来,分贝通不断精进产品能力及BI&AI能力,再次上榜。 本届评选,组委会基于过去一年融…

设计模式之命令模式:从原理到实战,深入解析及源码应用

&#x1f3af; 设计模式专栏&#xff0c;持续更新中 欢迎订阅&#xff1a;JAVA实现设计模式 &#x1f6e0;️ 希望小伙伴们一键三连&#xff0c;有问题私信都会回复&#xff0c;或者在评论区直接发言 命令模式 什么是命令模式&#xff1f; 命令模式&#xff08;Command Pattern…

【读书笔记-《30天自制操作系统》-21】Day22

本篇内容首先介绍了CPU对于操作系统的保护功能&#xff0c;然后在上一篇API的基础上实现C语言编写的显示字符串与窗口画面的应用程序。 1. CPU对操作系统的保护 本篇首先通过对几种破坏操作系统的尝试&#xff0c;来介绍CPU对操作系统的保护功能。 1.1 防护破坏 尝试通过篡…

排序----数据结构

Comparable Integer Double 默认情况下都是按照升序排列的 string 按照字母再ASCII码表中对应的数字升序进行排列 冒泡排序 选择排序

js 3个事件监听器 EventListeners

起因&#xff0c; 目的: 我有2个显示器。 某视频网站&#xff0c;我想一边播放视频&#xff0c;一边搞其他。但是&#xff0c;当我把鼠标移动到浏览器外面&#xff0c;点击一下别处&#xff0c; 视频就会自动暂停. 这个叫做 事件监听&#xff01; blur, 在元素或窗口失去焦点…

设计模式学习[6]---代理模式

文章目录 前言1.原理阐述2.举例2.1 例子与类图2.2 代码 总结 前言 代理这个词&#xff0c;从小到大听过不少。比如什么代理服务器&#xff0c;代理商&#xff0c;代理人之类的。通俗来说&#xff0c;代理无非无非就是我代表你处理事务的意思。 那么在设计模式中&#xff0c;针…

光伏业务管理系统:全流程管理成重点

一、光伏业务管理的挑战 光伏业务管理涉及项目规划、设计选型、施工建设、运营维护、数据分析等多个环节&#xff0c;每一个环节都直接关系到项目的经济性、安全性和可持续性。传统的管理方式往往存在信息不对称、流程不透明、响应速度慢等问题&#xff0c;难以适应光伏产业快…

洁净室污染源及环境监测仪器及验证服务

洁净室常见污染源 在严格控制的洁净室环境中&#xff0c;污染源的来源可能来自于很多途径&#xff0c;包含一些很容易被人们忽视&#xff0c;没有严格的进行维护保养的地方&#xff0c;知道污染的来源对于正确的对洁净室控制来说是非常关键的&#xff0c;基于这个原则&#xff…

老友记台词 第二季 第一集 Friends 201(全英版)

文章目录 201 The One With Ross New Girlfriend[Scene: Central Perk, Phoebe is recapping last season, and as she talks we see a montague of scenes from Ross and Rachel.][Scene: The Airport, continued from last season, Rachel is waiting for Ross to come of th…