1 MBtiles
1.1 MBtiles:
一种适用于存储在SQLite数据库中的任意平铺地图数据的规范,便于数据的快速使用和高效传输。具体参考:https://github.com/mapbox/mbtiles-spec
1.2 以TIFF格式遥感影像为例
MBtiles离线包的生成主要有两种办法:第一,通过iServer生成MBTiles离线包;第二,MBUtil工具。
2 利用iServer生成MBTiles离线包
2.1发布iServer服务
事先将需要生成MBTiles离线包的地图数据发布成iServer服务(注意:数据坐标系应设置为墨卡托投影);
2.2 打开SuperMap iServer Manager:集群——>分布式切片服务——>创建切片任务
2.3 创建切面任务,将存储类型设置为MBTiles,切片方案自定义。
2.4局限性
iServer 生成 MBTiles离线包时,具有一定局限性,对地图投影(墨卡托投影)、地图dip(96)等参数具有严格要求,否则会在创建切片任务时报错。
3 利用MBUtil工具生成MBTiles离线包
3.1 环境准备:
①Python(3.7.3);
②GDAL(3.2.3);
③Git(2.33.0):https://git-scm.com/downloads;
3.2 准备TMS瓦片
代码如下:
import gdal2tiles
if __name__ == '__main__':
gdal2tiles.generate_tiles('nanjing.tif', 'nanjing\\', np_processes=2, zoom='10-11')
3.3 MBUtil工具安装
代码如下:
# clone mbutil项目
git clone git://github.com/mapbox/mbutil.git
# 打开 mbutil目录
cd mbutil
# 安装 mbutil
python setup.py install
3.4 TMS瓦片转换为.mbtiles文件
代码如下:
其中,第一个路径为:TMS文件路径;第二个路径为:.mbutiles文件的存储路径
# 打开 mbutil 所在文件夹
cd E:\Python\mbutil
# TMS瓦片转换为 .mbutiles文件
python mb-util E:\nanjing\ E:\nanjing.mbtiles
3.5转化成功
显示如下提示,代表转换成功:
3.6总结
相较于2.4所述的通过iServer生成MBTiles文件的局限性,利用MBUtil工具生成MBTiles离线包的方法对地图数据要求并不严格,更具通用性。