Files
tippecanoe/tests
Claude 2410727242 Read MapLibre Tiles in tippecanoe-decode, tile-join, and tippecanoe-overzoom
Tilesets written with --output-format=mlt could not be read back by any of
tippecanoe's own tools, which made MLT a dead end rather than a tile format.

Build the mlt-cpp decoder from the vendored maplibre-tile-spec submodule
alongside the encoder, and convert a decoded MapLibre Tile back into the
equivalent mvt_tile: geometry, feature ids, and property columns. MLT rings
come back explicitly closed, so the repeated final point becomes an MVT
closepath, and the property columns, which are held in an unordered map,
are sorted by name so that the attributes of a decoded tile come out in a
stable order.

Rather than adding an option to each tool, mvt_tile::decode() detects the
encoding and dispatches, so everywhere tippecanoe already reads a vector
tile can read MLT. An MLT tile begins with a varint layer length followed
by a varint layer tag whose only defined value is 1, while an MVT tile is
a protobuf whose only field is the repeated layer field 3, so it begins
with 0x1a followed by a layer length that can never be as short as the one
byte that would be needed to look like an MLT layer tag.

Tile directories also needed a fix: enumerate_dirtiles() recognized .mlt
file names but still recorded .pbf as the extension to read them back
with, so decoding an MLT directory failed to find any of its tiles.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LxhELiLtpUFwrPSWwTYdHG
2026-08-06 17:12:28 +00:00
..
2023-09-14 16:51:38 -07:00
2023-09-14 16:51:38 -07:00
2023-09-14 16:51:38 -07:00
2023-09-14 16:51:38 -07:00
2023-09-14 16:51:38 -07:00
2023-09-14 16:51:38 -07:00
2023-09-14 16:51:38 -07:00
2023-09-14 16:51:38 -07:00
2023-09-14 16:51:38 -07:00
2023-09-14 16:51:38 -07:00
2023-09-14 16:51:38 -07:00
2023-09-14 16:51:38 -07:00
2023-09-14 16:51:38 -07:00
2023-09-14 16:51:38 -07:00