瓦片矩阵用多级规则网格组织空间访问

说明瓦片矩阵集怎样定义 CRS、比例级、行列索引和范围,使客户端能够一致请求地图、影像或矢量瓦片。

瓦片矩阵用多级规则网格组织空间访问

大范围地图和影像无法在每次浏览时整体传输。瓦片体系把某个坐标参考下的空间范围切成规则小块,并在多个比例级重复这一过程。客户端根据当前视图计算需要的级别、行和列,只请求可见瓦片。瓦片矩阵集正是对这些级别、网格和索引规则的完整描述。

它不是一种图片格式。PNG、JPEG、矢量瓦片或其他覆盖数据都可以按同一矩阵切分;同一种编码也可以使用不同矩阵集。互操作首先要求双方对空间网格达成一致,其次才是内容编码和传输接口。

每个级别是一张瓦片矩阵

瓦片矩阵定义一个比例级上的规则网格,包括比例分母、像元大小、瓦片宽高、矩阵列数和行数。每个瓦片由 tileMatrix、tileRow 和 tileCol 定位。

级别标识不一定是从零递增的数字,客户端应读取元数据而不是假设。不同矩阵集即使都使用数字级别,相同数字也可能对应不同分辨率和范围。

瓦片宽高通常以像素或网格单元表示。矩阵宽高表示整个级别有多少列和行瓦片。两者与像元分辨率共同决定覆盖范围。若只交换 URL 模板而缺少这些元数据,客户端无法可靠计算索引。

比例分母与屏幕像元大小之间存在标准约定,但真实显示比例还受设备像素密度和地图投影影响。级别更高通常表示分辨率更细,不应把级别号直接当作实际地图比例。

坐标参考和原点决定行列含义

矩阵集必须关联坐标参考系统。全局 Web 地图常用 Web Mercator,但极区、国家制图或工程系统可能采用其他投影。把所有瓦片都假设成 Web Mercator 会导致位置错误或无法覆盖目标区域。

每级矩阵需要一个角点作为网格原点,并约定行列增长方向。常见方案从左上角开始,列向右、行向下,但不能依靠习惯猜测。某些历史接口使用相反的纵向编号,直接拼接会造成南北翻转。

坐标轴顺序和单位同样重要。经纬度 CRS 与投影米制 CRS 的尺度计算不同,标准元数据中的轴顺序也可能与常见开发库显示习惯不一致。服务端和客户端应使用明确 CRS 标识及标准定义。

矩阵范围不一定覆盖整个 CRS 有效域。区域瓦片集可以只发布有限行列,元数据应声明限制。请求范围外瓦片时,服务可以返回空内容或适当状态,客户端不应无限尝试。

多级网格支持按视图选择分辨率

相邻级别通常按固定倍数细分,使一个粗瓦片对应若干细瓦片。这种层次关系便于缩放、缓存和回退,但标准允许不同定义,不能一概假设每级都是二倍。

客户端根据视图分辨率选择最接近的矩阵。选择过粗会放大模糊,选择过细会下载多余数据并增加服务压力。高像素密度屏幕可能请求更细级别或使用更大瓦片,但仍需遵守矩阵坐标。

栅格瓦片在生成时经历重投影和重采样。不同级别不是独立真值,而是同一源数据在不同网格上的表示。分类数据和连续影像应使用不同重采样规则,边界和无数据处理也要保持一致。

矢量瓦片通常包含落在瓦片范围附近的要素片段,并在瓦片局部坐标中编码。为避免线和符号在边缘断裂,生产时可能加入缓冲区;客户端仍按矩阵范围定位,编码内部的缓冲不能改变瓦片地理边界。

OGC API - Tiles 描述如何发现和获取瓦片

OGC API - Tiles 提供面向 Web API 的瓦片访问构件。客户端可以发现 tileset,读取其矩阵集、可用格式和链接,再用矩阵、行、列请求具体瓦片。

API 标准定义资源和请求语义,不规定所有瓦片必须是某一种编码。内容协商或链接媒体类型告诉客户端可用格式。服务宣称一致性时,还应公开 conformance 信息,使客户端知道实现了哪些要求类。

tileset metadata 描述一个瓦片集合的空间范围、矩阵集链接、数据类型和访问方式。它对区域数据、有限级别或非主流 CRS 尤其重要。只提供 {z}/{x}/{y} URL 而没有元数据,适合约定明确的封闭应用,却不具备同等发现能力。

WMTS 和 OGC API - Tiles 可以引用相同瓦片矩阵集,因此网格一致时,缓存内容具有复用可能。两者的接口表达不同,迁移时要核对行列顺序、级别标识、格式和样式,而不是只改 URL。

缓存键必须包含影响内容的维度

瓦片天然适合 HTTP 和边缘缓存,因为同一矩阵坐标常被重复请求。缓存键至少要区分 tileset、矩阵集、级别、行列、格式和样式;时间、语言、数据版本或过滤条件也可能影响内容。

源数据更新后,旧瓦片需要失效。使用不可变版本路径可以长期缓存,新版本通过新 URL 发布;原位更新则需要合理缓存头和主动清理。若元数据先指向新版本而部分瓦片尚未生成,客户端会看到混合状态。

预生成全部级别成本很高,按需生成又可能让首次访问延迟过大。可以预热高频区域、限制最大级别并对空瓦片设置短路缓存。容量估算应使用实际覆盖范围和稀疏程度,不能只按全球矩阵理论数量计算。

接缝与一致性需要专门验证

瓦片单独正确不代表拼接正确。需要检查同级相邻瓦片的线、标签、像元和透明边界是否连续,并验证父子级缩放时内容是否跳变。

服务测试应覆盖矩阵边界、最小最大级别、范围外请求、内容类型、缓存头和非默认 CRS。客户端测试则核对视图到行列的计算以及世界边界或经度环绕。

瓦片矩阵集把连续空间转化为可寻址的层次网格。只有 CRS、原点、尺度和范围都被明确描述,缓存、客户端和服务端才能对同一个行列号指向同一块空间达成一致。

资料依据