OGC TileMatrixSets 与 TMS (Tile Map Service) 的比较
1. 基本概念对比
| 特性 | OGC TileMatrixSets | 传统 TMS (Tile Map Service) |
|---|---|---|
| 标准化组织 | OGC (开放地理空间联盟) 正式标准 | OSGeo 社区规范 |
| 所属标准 | OGC 17-083r2/3, OGC API - Tiles 的一部分 | OSGeo 社区规范 |
| 主要用途 | 定义瓦片金字塔结构的标准方式 | 瓦片地图的访问协议 |
2. 技术特性对比
坐标系统支持
-
OGC TileMatrixSets:
- 支持任意CRS (坐标参考系统)
- 预定义WebMercatorQuad、WorldCRS84Quad等
- 可自定义坐标系和瓦片矩阵
-
TMS:
- 传统上使用EPSG:3857(Web墨卡托)或EPSG:4326(WGS84)
- 较少支持其他CRS
原点位置
-
OGC TileMatrixSets:
- 明确支持左上或左下原点
- 由具体定义决定
-
TMS:
- 传统使用左下原点(与Google Maps/OSM的XYZ瓦片相反)
- 需要Y轴翻转转换
缩放级别定义
-
OGC TileMatrixSets:
- 精确的scaleDenominator定义
- 支持非2的幂次缩放序列
-
TMS:
- 通常假设2的幂次缩放
- 缩放级别定义较不正式
3. 数据组织方式
OGC TileMatrixSets
{
"tileMatrixSet": {
"title": "WebMercatorQuad",
"crs": "http://www.opengis.net/def/crs/EPSG/0/3857",
"tileMatrices": [
{
"id": "0",
"scale": 559082264.0287178,
"matrixSize": {"width": 1, "height": 1},
"tileSize": {"width": 256, "height": 256}
}
]
}
}
传统TMS
- 通过目录结构组织:
/{z}/{x}/{y}.png - 通常附带
tilemapresource.xml元数据文件
4. 协议与访问方式
| 特性 | OGC TileMatrixSets | 传统 TMS |
|---|---|---|
| 访问协议 | 通过OGC API - Tiles或WMTS | HTTP简单目录结构 |
| 元数据描述 | 标准化的JSON/XML描述 | tilemapresource.xml |
| 请求URL模式 | 标准化URL模板 | 简单目录结构 |
5. 实际应用场景
OGC TileMatrixSets适用场景
- 需要标准化互操作的GIS应用
- 多CRS支持的场景
- 与OGC生态系统集成的应用(如WMTS服务)
- 需要精确控制缩放级别和投影的场景
传统TMS适用场景
- 简单瓦片地图服务
- 与旧系统兼容
- 开源GIS工具(QGIS等)中的背景地图
- 不需要严格标准化的内部应用
6. 转换与兼容性
两者可以相互转换,主要区别在于:
-
Y坐标转换:
- 从TMS到OGC WebMercatorQuad:
y_osm = (2^z - 1) - y_tms
- 从TMS到OGC WebMercatorQuad:
-
元数据描述:
- OGC标准有更丰富的元数据描述能力
-
CRS支持:
- OGC标准可以原生支持更多CRS
7. 发展趋势
- OGC TileMatrixSets正在成为行业标准
- 传统TMS仍在广泛使用,特别是在开源社区
- 现代实现(如GeoServer)通常同时支持两种标准
选择建议:
- 新项目建议使用OGC TileMatrixSets
- 维护旧系统可能需要继续使用TMS
- 可以同时实现两种标准以最大化兼容性