Expand description
WebAssembly bindings for the MapLibre Tile (MLT) format.
§Design
A single MltTile struct owns all decoded mlt_core::TileLayer data for
every layer in the tile. No per-layer or per-feature WASM objects are
created; every accessor takes explicit (layer_idx, feature_idx) arguments
so the JavaScript side can keep plain numeric indices rather than
heap-allocated wrapper objects.
§Geometry
MltTile::layer_geometry returns a LayerGeometry
whose typed-array getters expose the raw offset and vertex buffers.
JS walks these directly - zero WASM boundary crossings per feature.
§IDs
MltTile::layer_ids returns a Float64Array - one f64 per
feature. Absent IDs are NaN (≡ undefined after the JS wrapper checks
isNaN). IDs above Number.MAX_SAFE_INTEGER lose precision.
§Properties
MltTile::layer_property_keys and MltTile::layer_properties
expose all property columns as typed arrays built once per layer. JS reads
any feature’s property with a single array index - zero WASM calls during
traversal.
Functions§
- decode_
tile - Decode a raw MLT tile blob and return an
MltTile.