什么是 Martin
Martin 是一个高性能的地图切片服务器,使用Rust
编写,支持PostGIS
,MBTiles,PMTiles。
什么是 MBTiles
MBTiles 是个sqlite
文件,也就是说MBTiles
文件是个单文件数据库。截至本文写作时,最新标准是1.3.
MBTIles
利用了数据库的索引机制,避免相同内容的切片重复占用空间,同时也有了 SQLITE
数据库单文件的优点,非常方便传输与利用。
Tiles 表
CREATE TABLE tiles (
zoom_level INTEGER, -- Z
tile_column INTEGER, -- Y
tile_row INTEGER, -- X
tile_data BLOB); -- 切片数据
CREATE UNIQUE INDEX tile_index on tiles (
zoom_level, tile_column, tile_row);
Metadata 表
CREATE TABLE metadata (name text, value text);
元信息字段
- name
- format
- bounds
- center
- minzoom
- maxzoom
- attribution
- description
- type
- version
- json
为什么使用 MBTiles
- 单文件,就是爽(对比下 ArcGIS 生成的 Bundles中无数个小切片文件…🥶)
- 紧凑,配合索引机制,可以避免相同内容的切片重复出现,节省磁盘空间
MBTiles
本质上还是个SQLITE
数据库,解析利用都非常方便,生态良好,有大量的配套软件
MBTiles | PMTiles | ArcGIS Bundle(即 raster-tiles-compactcache) | COG(Cloud Optimized GeoTIFF) | |
---|---|---|---|---|
单文件 | 😄 | 😄 | 🥶 | 😄 |
支持无服务器(serverless )的方式使用 |
🥶 | 😄 | 🥶 | 😄 |
矢量 | 😄 | 😄 | 🥶 | 🥶 |
栅格 | 😄 | 😄 | 😄 | 😄 |
开源社区生态 | 😄 | 😄 | 🥶 | 😄 |