ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

MBTiles入门必读:10个核心概念与术语完整清单

MBTiles入门必读:10个核心概念与术语完整清单 MBTiles入门必读10个核心概念与术语完整清单【免费下载链接】mbtiles-specspecification documents for the MBTiles tileset format项目地址: https://gitcode.com/gh_mirrors/mb/mbtiles-specMBTiles 是一种在 SQLite 数据库中存储瓦片地图数据的开放规范也是离线地图领域最流行的文件格式之一。一个 MBTiles 文件官方术语为 tileset即瓦片数据集本质是一个 .mbtiles 数据库文件把成千上万张地图瓦片、元数据与交互信息打包在一起方便拷贝、传输与离线使用。无论你是 GIS 新手、前端地图开发者还是想给 App 添加离线地图功能理解这些核心概念都能事半功倍。本文用 10 个核心概念加一张术语速查表带你快速入门 MBTiles 格式。MBTiles 是什么先看三个关键认知在逐个拆解概念之前先建立三个最基础的认知一个 MBTiles 文件 一个瓦片数据集tileset官方规范见仓库内最新文档1.3/spec.md。️MBTiles 本质是一个 SQLite 数据库用标准的数据库表组织瓦片数据。️里面装的是可直接显示的瓦片而非原始矢量数据这与 GeoJSON、Spatialite 有本质区别。 MBTiles 是一个最小规范它只规定数据如何被读取不限制内部如何压缩与优化因此各家实现可以在内部自由发挥只要对外满足规范即可。概念 1Tileset瓦片数据集—— MBTiles 文件的本体Tileset 是官方对 MBTiles 文件的称呼意为瓦片数据集。一个 MBTiles 文件恰好代表一个瓦片数据集并可以附带交互网格数据如 UTFGrid。如果你的项目包含多个图层或地图通常的做法是把它们拆分为多个 MBTiles 文件各文件互不干扰。概念 2SQLite 数据库—— MBTiles 的容器格式MBTiles 的物理形态就是一个 SQLite 数据库文件硬性要求有三点SQLite 版本必须为 3.0.0 或更高只允许使用 SQLite 核心特性不得依赖任何扩展可以使用 SQLite 官方为 MBTiles 分配的 magic number便于程序快速识别文件类型。一个合规的 MBTiles 数据库至少包含两张表metadata必需元数据键值对表tiles必需瓦片数据表grids/grid_data可选UTFGrid 交互数据表。规范还允许用视图view来模拟表结构所以两个实现内部存储细节可以完全不同但对外都满足同一套接口。概念 3地图瓦片Tile—— 一张一张的小方块地图瓦片就是把整幅地图按 256×256 像素切成的无数小方块不同缩放级别下的瓦片组合起来就形成了瓦片金字塔级别越高瓦片数量越多、细节越丰富。MBTiles 的tiles表中tile_data列存放的就是每张瓦片的二进制数据blob可能是图片也可能是矢量瓦片数据。概念 4瓦片坐标zoom_level / tile_column / tile_row—— 每张瓦片的身份证tiles表用三个整数字段唯一定位一张瓦片zoom_level缩放级别tile_column列号Xtile_row行号Y。这套坐标遵循 TMSTile Map Service规范并且强制使用 global-mercator即 Spherical Mercator投影剖面。需要特别注意的是TMS 的行号 Y 轴与 Web 地图常见的 XYZ 坐标系是反向的。例如 URL 中常见的瓦片 11/327/791在 MBTiles 中应存为zoom_level11, tile_column327, tile_row1256因为 1256 2¹¹ − 1 − 791。这是新手最容易踩的坑之一️概念 5metadata 元数据表—— 瓦片数据集的户口本metadata表是 MBTiles 的信息中心采用最简单的键值对结构只有name和value两列均为 text 类型且必须用 UTF-8 编码建表语句仅一行CREATE TABLE metadata (name text, value text);。在 1.3 规范中类型键说明必需name数据集名称必需format瓦片格式pbf/jpg/png/webp 等建议bounds覆盖范围经纬度建议center默认视角经度,纬度,级别建议minzoom/maxzoom缩放级别上下限可选attribution版权与数据来源说明可选description/type/version描述、类型、数据集版本概念 6format 字段—— 瓦片数据的血型format决定了瓦片数据的编码格式是读取工具选择解码方式的关键依据。在最新 1.3 规范中允许的取值包括format含义png/jpg栅格瓦片传统图片格式webp栅格瓦片WebP 格式pbfgzip 压缩的 Mapbox Vector Tile 矢量瓦片其他任意合法的 IETF media type早期版本1.0/1.1/1.2只支持png和jpg矢量瓦片支持是 1.3 才加入的重要变化。概念 7bounds 与 center—— 地图的范围与默认视角bounds描述瓦片数据集覆盖的最大范围使用 WGS 84 经纬度格式为 OpenLayers 的left,bottom,right,top。例如全球不含两极为-180.0,-85,180,85。center描述地图打开时的默认视角格式为经度,纬度,缩放级别例如-122.1906,37.7599,11旧金山。这两个键能帮助地图客户端快速定位与渲染新建数据集时建议务必填上。概念 8minzoom 与 maxzoom—— 缩放级别的上下限minzoom和maxzoom分别表示数据集提供瓦片的最低与最高缩放级别客户端据此判断哪些级别可以请求。值得一提的是未来版本的规范计划把bounds、minzoom、maxzoom都升级为必需键所以现在建数据集时最好一次性写全避免将来不兼容。概念 9PBF 矢量瓦片—— 1.3 时代的矢量革命1.3 规范的最大亮点是正式支持矢量瓦片。当format为pbf时瓦片数据是 gzip 压缩的 Mapbox Vector Tile 数据同时metadata表中必须包含一个json键用来描述瓦片内的图层结构vector_layers图层清单包含每个图层的id、fields字段名与类型Number / Boolean / String以及可选的description、minzoom、maxzoomtilestats可选的图层统计信息含属性示例值与数值范围便于前端做样式匹配。矢量瓦片的优势是体积小、可动态样式化是目前 Web 地图的主流方案。概念 10UTFGrid 交互网格—— 让瓦片可点击UTFGrid 是让静态瓦片具备交互能力的轻量方案例如鼠标悬停显示地名。从 1.2 起UTFGrid 从 MBTiles 中独立为配套规范仓库中1.1/utfgrid.md仍保留完整说明与示例。在 MBTiles 数据库中它对应两张可选表grids存放 gzip 压缩的 UTFGrid 数据grid_data存放 key 到 JSON 对象的映射。UTFGrid 的核心思想是用一长串字符代替逐像素存储信息把 256×256 瓦片的交互数据压缩到极小体积gzip 后通常不足 2KB非常适合浏览器场景。服务端还可通过layer.jsonformatter 格式化函数、legend 图例与*.grid.json端点提供交互数据详见1.1/interaction.md。附MBTiles 术语速查表术语一句话解释TilesetMBTiles 文件即一个瓦片数据集Tile256×256 的地图瓦片SQLiteMBTiles 的容器数据库TMS瓦片地图服务规范MBTiles 坐标遵循它XYZ常见瓦片 URL 坐标系Y 轴与 TMS 相反Spherical Mercator球形墨卡托投影MBTiles 唯一支持的投影WGS 84经纬度坐标系统bounds/center 使用它blobSQLite 的二进制类型存放瓦片原始数据gzip压缩格式pbf 与 grids 数据使用overlay / baselayer叠加层 / 底图层magic numberSQLite 官方为 MBTiles 分配的文件标识快速了解MBTiles 版本演进想读透规范建议按版本顺序阅读仓库中的规格文档版本关键变化文档1.0基础版本metadata 含 name/type/version/description1.0/spec.md1.1format 升级为必需键bounds 建议提供加入 UTFGrid 交互1.1/spec.md、1.1/utfgrid.md1.2UTFGrid 独立成规范1.2/spec.md1.3支持矢量瓦片pbf修订 metadata1.3/spec.md版本变更记录可查看CHANGELOG.md交互细节可参考1.1/interaction.md与示例文件1.1/demo.json。常见问题FAQMBTiles 是什么MBTiles 是一种把瓦片地图数据存进 SQLite 数据库的开放规范文件后缀通常为.mbtiles一个文件就是一个完整的瓦片数据集。MBTiles 能存什么可以存栅格瓦片png/jpg/webp、矢量瓦片pbf以及 UTFGrid 交互数据。如何查看 MBTiles 文件内容因为它就是 SQLite 数据库用任意 SQLite 工具如 sqlite3 命令行或数据库管理软件即可直接打开查看metadata、tiles等表的结构与数据。MBTiles 与在线瓦片服务有什么区别在线瓦片服务按需返回单张瓦片而 MBTiles 把整组瓦片打包在一个文件里天然适合离线地图、内网分发与数据交换。结语至此MBTiles 的 10 个核心概念与常见术语你已经全部掌握从 SQLite 容器、瓦片坐标到 metadata 元数据、PBF 矢量瓦片和 UTFGrid 交互这套知识足以支撑你读懂任何一份 MBTiles 数据集。下一步建议打开仓库中的1.3/spec.md对照本文逐条验证再找个真实的.mbtiles文件用 SQLite 工具解剖一遍入门就是水到渠成的事。祝你玩得开心【免费下载链接】mbtiles-specspecification documents for the MBTiles tileset format项目地址: https://gitcode.com/gh_mirrors/mb/mbtiles-spec创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表