Skip to content

Tags: vuski/qbtiles

Tags

v0.7.2

Toggle v0.7.2's commit message
Optimize Python build performance with NumPy vectorization

- GeoTIFF conversion ~20x faster (408s → ~20s for 51M cells)
- Faster bitmask generation for all build modes
- Add build timing logs
- test_geotiff: add -o output path option
- Bump PyPI version to 0.7.2

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

v0.7.1

Toggle v0.7.1's commit message
Bump npm version to 0.7.1

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

v0.7.0

Toggle v0.7.0's commit message
QBT v0.7.0: coordinate fix, metadata, viewer demo, multi-band fixed row

Library (Python builder):
- Fix CRS=4326 quadkey encoding to use NW origin (_wgs84_to_quadkey)
- Fix build(geotiff=) origin_y to NW corner for CRS=4326
- Independent extent_x/extent_y calculation (non-square allowed)
- Auto-record vector_layers + data_bounds in metadata
- Multi-band GeoTIFF → fixed row mode (interleaved) instead of columnar
- Fix folder zoom calculation (bit_length // 2 - 1)

Library (TypeScript reader):
- addProtocol: auto gzip decompression (magic bytes check)
- openQBT: parse metadata section, expose as qbt.metadata
- Rebuild example files with new encoding

Demo:
- New viewer demo (Demo 4): drag & drop QBT file viewer
- range-request: derive grid from header instead of hardcoded params
- Vite dev server: serve ref/ folder with Range Request support
- population: show actual file size

Docs:
- Update all docs and Korean translations to v0.7.0
- Version bump to 0.7.0

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

v0.5.0

Toggle v0.5.0's commit message
QBT v0.5.0: unified file format with header, compressed bitmask, colu…

…mnar mode

- Spec: 128B header with index_hash (SHA-256), flags (row/columnar),
  varint type code, compressed bitmask section
- Python: serialize_bitmask, write_qbt_fixed/columnar/variable, read_qbt_header
- TypeScript: parseQBTHeader, loadQBT with hash-based index cache,
  readColumnarValues, bitmask gzip auto-detect
- Demo 3: single .qbt URL with Range Request (replaces split bitmask+values)
- Demo 2: columnar .qbt.gz with varint×3 (1.75MB, 1.97 Byte/cell)
- Demo 1: QBTiles Viewer with file info display
- Data: korea_pop_100m.qbt.gz (columnar), global_pop.qbt (fixed row)
- Version bump: pip 0.5.0, npm 0.5.0

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>