Pure MoonBit tile container toolkit: read PMTiles v3 archives and MBTiles 1.3 databases.
| 能力 | 状态 | 说明 |
|---|---|---|
| PMTiles v3 文件头 | 已完成 | 127 字节头部,字段与枚举校验 |
| PMTiles 目录 | 已完成 | 列式变长整数解码、run-length 展开、二分查找、叶目录 |
| PMTiles 取瓦片 | 已完成 | 按 z/x/y 定位,支持叶目录递归 |
| PMTiles 元数据 | 已完成 | gzip 解压后返回 JSON 字节或 UTF-8 文本 |
| 瓦片编号 | 已完成 | Hilbert tile_id,与参考实现逐项一致 |
| 瓦片坐标 | 已完成 | 经纬度与 z/x/y 互转、瓦片边界与中心 |
| SQLite 只读层 | 已完成 | 文件头、按页读取、B 树页头与单元、记录头与列值(含浮点)、溢出页、表遍历 |
| MBTiles | 已完成 | 元数据键值对、按 z/x/y 取瓦片(自动处理 TMS 行号) |
| 记录层完整性 | 已完成 | 浮点列按 IEEE754 还原,记录正文跨页时走溢出页链 |
moon add qqq66668/moontilesimport {
"qqq66668/moontiles/pmtiles",
"qqq66668/moontiles/mbtiles",
"qqq66668/moontiles/tilemath",
"qqq66668/moontiles/sqlite",
}let file = @pmtiles.PmtilesFile::from_bytes(bytes)
let header = file.header()
let tile = file.tile(12, 3372, 1552)
let meta = file.metadata_text()let db = @mbtiles.Mbtiles::from_bytes(bytes)
let format = db.metadata("format")
let tile = db.tile(0, 0, 0)moon run cmd/moontiles --target wasm-gc| 包 | 职责 |
|---|---|
| tilemath | 瓦片金字塔换算、经纬度与瓦片坐标互转、Hilbert tile_id |
| pmtiles | PMTiles v3 头部、目录、gzip、取瓦片、元数据 |
| sqlite | SQLite 只读层:文件头、页、B 树、记录、表遍历 |
| mbtiles | MBTiles 元数据与瓦片 |
| cmd/moontiles | 命令行示例 |
moon check --target wasm-gc --deny-warn
moon test --target wasm-gc
moon test --target jspython tools/mutation_check.pyInstall
Download zipPure MoonBit tile container toolkit: read PMTiles v3 archives and MBTiles 1.3 databases.