TileJSON
2026年03月09日 09:05

GISBox是一站式三维GIS数据编辑、转换、发布平台,支持OSGB/GEOTIFF/RVT等多种GIS格式编辑,转换为3DTiles/Terrain等并发布。

简介

TileJSON是一种用于描述地图切片集元数据的JSON标准,包含切片版本、请求URL及矢量图层定义(如适用),主要用于配置地图底图信息,支持矢量与栅格瓦片,被Mapbox等工具广泛用于地图数据的组织与传输。

文件结构

TileJSON 的文件结构由若干核心字段组成,每个字段承担明确的语义职责,共同构成一个完整、可解析的地图服务描述:

  1. 版本与规范标识‌:包含 version 字段,明确遵循的 TileJSON 规范版本(如 "2.1.0"),确保客户端能正确解析后续字段,是协议兼容性的基石,避免因版本差异导致渲染错误。
  2. 切片服务地址模板‌:通过 tiles 字段定义一个或多个 URL 模板,使用 {z}/{x}/{y} 占位符动态生成瓦片请求路径,支持 HTTPS 协议与多个镜像源,是客户端获取实际瓦片数据的唯一入口。
  3. 地图范围与投影信息‌:minzoom 和 maxzoom 字段定义可渲染的缩放层级范围,bounds 字段以经纬度四元组([west, south, east, north])限定地图有效地理区域,确保客户端在正确空间上下文中加载数据,避免越界请求。
  4. 图层元数据与样式定义‌:format 字段指明瓦片格式(如 png、pbf),type 字段区分为 raster 或 vector,若为矢量图层,vector_layers 数组详细描述每个图层的 ID、描述、最小/最大缩放范围及属性字段,为样式引擎提供渲染依据。
  5. 名称与描述信息‌:name 和 description 字段提供人类可读的标题与说明,便于地图平台或用户识别服务内容,常用于地图目录、配置面板等交互场景,提升可管理性。
  6. 图块网格与偏移参数‌:center 字段(可选)指定默认视图中心点(经度、纬度、缩放级别),scale 字段(仅用于矢量)定义图块坐标系的缩放比例,影响矢量要素的精确渲染,是高精度地图应用的关键配置。
  7. 扩展与兼容性声明‌:attribution 字段强制要求提供版权与数据来源声明,符合开放数据伦理;extensions 字段可声明支持的自定义扩展(如 mapbox:vector_layers),增强功能可扩展性,同时 template 字段允许自定义 URL 模板语法,适配非标准服务架构。
  8. 可选的样式与配色配置‌:legend 字段可指向一个 HTML 或图像链接,用于展示图例;sprite 和 glyphs 字段为矢量地图提供图标与字体资源的 URL 模板,是实现动态符号化与文本渲染的必要依赖,构成完整视觉表达体系。

优点

  1. 轻量且标准化‌:TileJSON 采用简洁的 JSON 格式,仅包含必要元数据字段(如 tiles、minzoom、maxzoom、bounds),避免冗余,便于网络传输与客户端快速解析,是 OGC 与 Mapbox 生态广泛采纳的开放标准。
  2. 统一支持矢量与栅格瓦片‌:同一文件可描述 PBF 矢量瓦片或 PNG/JPEG 栅格瓦片的服务地址与层级,实现底图源的统一配置,降低前端代码复杂度。
  3. 动态请求与缓存友好‌:通过 {z}/{x}/{y} URL 模板定义瓦片路径,客户端可按需请求,配合 HTTP 缓存机制,显著提升大规模地图加载性能,适用于全球范围的高并发访问。
  4. 动态请求与缓存友好‌:通过 {z}/{x}/{y} URL 模板定义瓦片路径,客户端可按需请求,配合 HTTP 缓存机制,显著提升大规模地图加载性能,适用于全球范围的高并发访问。
  5. 支持多镜像源与容错‌:tiles 字段可配置多个 URL 模板,客户端可轮询或负载均衡访问,提升服务可用性,避免单点故障。

缺点

  1. 不包含样式定义‌:TileJSON 仅描述“数据在哪里”,不定义“如何渲染”。样式需依赖外部 Mapbox Style JSON 或 GL Style Spec,导致配置分离,增加部署与版本管理复杂度。
  2. 静态元数据,无动态更新‌:TileJSON 文件为静态配置,无法在运行时动态调整缩放范围、图层可见性或数据源,变更需重新部署文件,不适用于实时数据流或动态图层场景。
  3. 依赖外部资源易失效‌:矢量地图所需的 sprite(图标)与 glyphs(字体)资源若路径错误或服务器不可达,将导致符号与文本渲染失败,且错误不易定位,调试成本高。
  4. 投影限制‌:默认仅支持球面墨卡托投影(EPSG:3857),对其他坐标系(如 EPSG:4326)无原生支持,需额外转换或使用非标准扩展,限制了在地理信息系统(GIS)中的通用性。
  5. 缺乏版本与缓存控制机制‌:无内置版本号或 ETag 机制,客户端难以判断 TileJSON 是否过期,易因缓存导致配置错配,需依赖 HTTP 头或服务端策略手动管理。

应用场景

TileJSON 广泛应用于现代 Web 地图与移动地理信息系统中,作为连接地图数据源与前端渲染引擎的核心配置协议,被 Mapbox、OpenStreetMap、天地图等平台用于动态加载矢量与栅格瓦片,支撑从导航应用、智慧城市可视化到离线地图包的多种场景,开发者通过其标准化的 URL 模板与层级定义,实现跨平台、多源地图服务的统一接入与高效缓存,同时在 Leaflet、MapLibre GL JS 等开源库中作为底图配置的默认格式,确保了全球范围内地图应用的互操作性与可维护性。

示例图

1. 配置与地图预览。

2. TileJSON 图层示例。

 

文件打开方式

1. 从TileJSON URL创建一个简单的地图查看器。

 

相关 GIS 服务

Web 地图渲染服务 OGC API

切片地图服务

HERE Technologies

GeoWebCache

参考资料

  1. https://docs.mapbox.com/help/glossary/tilejson/
  2. https://docs.aveva.com/bundle/gismapapp/page/1340010.html
  3. https://openlayers.org/en/latest/examples/tilejson.html
  4. https://pypi.org/project/tilejson/