【地图缓存】MBTiles初步了解

MBTiles是一种在SQLite数据库中存储地图瓦片数据的标准,特别适合移动设备。它遵循TMS规范,使用WebMercator投影,瓦片尺寸为256X256,且支持JPEG或PNG格式。元数据表存储地图设置,tiles视图减少冗余存储。MBTiles文件可通过SQLite查看器或QGIS打开和查看。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.MBTiles初步了解

MBTiles是一个在SQLite 数据库存储瓦片地图数据的标准。MBTiles 仅支持切片数据,包括矢量、栅格瓦片,它使得数以百万的瓦片数据存储在一个文件中,而且SQLite数据库支持多种平台,MBTiles在移动设备上浏览瓦片数据有一定的优势。

  • SQLite数据库

    SQLites是一个轻量级的嵌入数据库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。
    可以运行熟悉的SQL SELECT、INSERT、UPDATE语句,并创建表、索引、视图
    每个.sqlite文件是一个独立的数据
    SQLite数据库可以通过navicate打开

2.MBTiles特点

  • 遵循 TMS 规范来生成和组织地图瓦片。即原点坐标为左下角,Y轴坐标向上。
  • 只支持 Web Mercator 投影(EPSG:3857 或 EPSG:900913)。
  • 表的文本列中的所有文本都必须编码为UTF-8
  • 瓦片尺寸为 256 X 256。支持格式:jpg 或 png
  • 通过建立视图,减少重复瓦片的存储,减少数据大小。
  • 后缀名为.mbtiles,可以通过一般的 SQLite 查看器查看,也可通过QGIS查看。
  • 瓦片比例尺固定。参照下表:

image.png

3.MBTiles表

MBTiles 存储格式通过元数据表”metadata”,和 tiles 视图map 数据表image 数据表一起管理地图瓦片数据。其中metadata和tiles是必须包含的表格

3.1metadata 元数据表

metadata元数据表采用键值对的形式来存储地图瓦片数据的相关设置,包括两个文本类型的表name和value
metadata表必须包含name和format字段
元数据表个字段描述参考:mbtile_github
image.pngimage.png

-元数据表各字段描述与例子(来自iserver11教程)

image.png
举例:
image.png

3.2.tiles 视图

包括所有的瓦片数据和用于定位瓦片数据的一些值。

  • zoom_level、tile_column和tile_row列必须按照瓦片地图服务规范对瓦片的位置进行编码
  • 在TMS瓦片方案中,11/327/791的瓦片被插入为zoom_level 11, tile_column 327, and tile_row 1256,因为1256是2^11-1-791。
  • tile_data列必须包含作为blob的关联瓦片的原始二进制图像或矢量瓦片数据(数据库看会乱码)
  • 使用 tiles 视图的好处在于可以减少冗余瓦片。地图中像海洋或空旷的土地等区域包含有成千上万重复而冗余的纯色瓦片。MBTiles 通过拆分瓦片索引和瓦片原始图像的存储,使用视图的方式来关联二者,这样成千上万的瓦片索引就可以指向同一个瓦片图像,从而大大减少纯色瓦片的冗余存储,提升磁盘利用率以及瓦片检索效率。

image.pngimage.png

  • navicate打开sqlite数据库中的mbtiles如下:(tile_data是blob数据会乱码)

image.png

4.MBTile文件展示

  • MBTiles原则上仅支持存储墨卡托投影的瓦片,但如果一定要存储WGS84坐标系的地图瓦片,在QGIS中可以打开,只是在显示地图时会动态投影为墨卡托。
  • 直接将mbtiles文件拖入QGIS即可

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值