Skip to content

瓦片系统

瓦片系统为在 OpenLayers 中管理瓦片地图数据提供基础基础设施。它处理瓦片网格定义、地理坐标和瓦片坐标之间的坐标系转换、用于瓦片请求的 URL 生成,以及用于高效瓦片检索的空间索引。该系统构成了所有瓦片数据源(包括 XYZ、WMTS 和其他基于瓦片的服务)的主干。

有关使用此系统的特定瓦片源,请参阅Source 系统。有关瓦片如何渲染的详细信息,请参阅Canvas 渲染管线

核心架构

瓦片系统由三个主要组件组成,它们协同工作以管理基于瓦片的数据流:

瓦片系统组件架构

SVG
100%

瓦片坐标系

瓦片坐标系使用三元素数组 [z, x, y] 表示瓦片,其中 z 是缩放级别,x 是列,y 是行。该系统为索引和寻址瓦片网格中的单个瓦片提供基础。

瓦片坐标操作

操作函数目的
创建createOrUpdate(z, x, y)创建或更新瓦片坐标
键生成getKey(tileCoord)创建字符串键 "z/x/y"
解析fromKey(key)将字符串键解析为坐标
哈希hash(tileCoord)创建用于索引的数字哈希
验证withinExtentAndZ(tileCoord, tileGrid)检查边界和缩放有效性

瓦片坐标转换流程

SVG
100%

瓦片网格管理

TileGrid 类管理地理坐标和瓦片坐标之间的数学关系。它定义分辨率级别、瓦片大小、原点和空间范围,这些确定了连续地理空间如何离散化为瓦片。

TileGrid 配置

SVG
100%

关键 TileGrid 操作

方法行范围目的
forEachTileCoord()235-242迭代范围内的瓦片
getTileRangeForExtentAndZ()426-434获取范围/缩放的瓦片范围
getTileCoordForCoordAndZ()571-579地图坐标到瓦片坐标
getTileCoordExtent()458-467瓦片坐标到地理范围
getZForResolution()634-641分辨率到缩放级别
getFullTileRange()608-615缩放级别的完整瓦片范围

URL 生成系统

URL 生成系统从模板和瓦片坐标创建瓦片请求 URL。它支持基于模板的 URL 构造,具有占位符替换和跨多个服务器端点的负载均衡。

URL 模板处理

SVG
100%

URL 模板功能

URL 生成系统支持几种模板占位符类型:

占位符目的示例
{z}缩放级别{z} → 10
{x}瓦片列{x} → 512
{y}瓦片行{y} → 256
{-y}反转 Y 坐标{-y} → 767(当 maxY=1023 时)
{1-3}服务器选择{1-3} → 1、2 或 3

{-y} 占位符需要 TileGrid 实例,通过使用 getFullTileRange() 确定缩放级别的最大 Y 值来计算反转 Y 坐标。

与数据源的集成

瓦片系统通过标准化接口与各种瓦片源集成,该接口结合了瓦片网格、URL 函数和坐标管理:

瓦片源集成模式

SVG
100%

瓦片系统提供数学和 URL 生成基础,使瓦片源能够高效加载、缓存和显示跨不同坐标系和服务器配置的瓦片地理数据。