Skip to content

Add MLT output format - #393

Open
dannote wants to merge 4 commits into
felt:mainfrom
dannote:feature/mlt-encoder
Open

Add MLT output format#393
dannote wants to merge 4 commits into
felt:mainfrom
dannote:feature/mlt-encoder

Conversation

@dannote

@dannote dannote commented Jul 3, 2026

Copy link
Copy Markdown

Summary

Adds MapLibre Tile (MLT) output support to Tippecanoe.

  • Adds --output-format=mlt alongside the default MVT/PBF output
  • Writes MBTiles metadata with format=mlt
  • Writes directory tiles with .mlt extensions
  • Vendors the official maplibre/maplibre-tile-spec C++ encoder as a submodule
  • Adds MLT encoder options:
    • --pretessellate
    • --no-mlt-feature-sort
  • Keeps vector layer metadata/tilestats generation for MLT outputs
  • Updates CI checkout to fetch submodules recursively

Fixes #380.

Tests

  • make test
  • make mlt-test
  • git diff --check upstream/main...HEAD

dannote added 3 commits July 2, 2026 17:29
Integrate the C++ MLT encoder from maplibre-tile-spec as a submodule.
Tiles are encoded by converting the existing mvt_tile to
mlt::Encoder::Layer and calling the encoder library directly.

New CLI flags:
  --output-format=mlt     Encode tiles as MLT instead of MVT
  --pretessellate         Pre-triangulate polygons (MLT only)
  --no-mlt-feature-sort   Disable within-tile Hilbert sorting (MLT only)

MLT tiles use .mlt extension in directory output and format=mlt in
mbtiles metadata. Compression and all existing flags work unchanged.
Detect JSON object strings at MLT output time and convert to STRUCT columns.
Nested objects/arrays within are re-stringified. MVT output unchanged.
@e-n-f

e-n-f commented Jul 4, 2026

Copy link
Copy Markdown
Collaborator

Thanks! Does this also add tippecanoe-decode support or is it encode-only?

@dannote

dannote commented Jul 4, 2026

Copy link
Copy Markdown
Author

Thanks! This is encode-only for now — it adds MLT output from tippecanoe, but not tippecanoe-decode support yet.

@indus

indus commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

@dannote I just tested MLT generation with your fork—works really nicely! It cut the file size almost in half 😮

Do you think there’s any chance of bringing MLT support to tile-join as well?

@dannote

dannote commented Jul 28, 2026

Copy link
Copy Markdown
Author

@indus Yes, definitely! I’d like to get the initial MLT support in this PR merged first, and then I can look into adding MLT support to tile-join as a follow-up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Support for MLT output?

3 participants