Build terrain.pmtiles from Mapterhorn instead of fetching tiles ourselves
Mapterhorn (mapterhorn.com, Protomaps-affiliated) publishes pre-built Terrarium-encoded terrain as PMTiles: a global planet.pmtiles (z0-12) plus ~450 regional chunks (z13+). Same pmtiles extract --bbox=... mechanism offline.pmtiles already uses, just against their files — confirmed live against their real manifest and the documented Interlaken example. Replaces fetching every individual tile ourselves (even after this session's earlier concurrency fix, still tens of minutes for a real region) with 1-3 extract calls plus a merge when the bbox spans more than one chunk: seconds, not minutes. Removes CONCURRENT_TILE_FETCHES, write_terrarium_mbtiles, tile_range, lng/lat_to_tile_x/y, fetch_terrarium_tile, and the sqlite3 gem entirely — none of it is needed once the tiles arrive pre-packaged. dem.js's point-elevation lookup (shadow.js's terrain-shadow overlay) hardcoded a 256px PNG tile assumption that Mapterhorn's 512px WebP tiles would have silently broken — now reads the actually-decoded tile's own size and mime type instead of assuming either.
This commit is contained in:
1 parent
d041c21270
commit
f89dea5805
8 files changed
+224
-234
No files matched your search
@@ -82,6 +82,15 @@ The online map style (not vendored, fetched at runtime when the
|
||||
https://tiles.openfreemap.org/styles/liberty[OpenFreeMap "liberty"],
|
||||
built from https://www.openstreetmap.org[OpenStreetMap] data.
|
||||
|
||||
`terrain.pmtiles` (`lib/maptool/pmtiles_builder.rb`'s in-app
|
||||
regeneration, or the manual recipe in `docs/development.adoc`) is
|
||||
extracted at build time, not vendored, from
|
||||
https://mapterhorn.com[Mapterhorn] — a Protomaps-affiliated project
|
||||
publishing pre-built Terrarium-encoded terrain as PMTiles. Per-region
|
||||
source licenses vary (CC-BY-4.0 and similar); see
|
||||
https://download.mapterhorn.com/attribution.json[their own attribution
|
||||
list] for the full provenance.
|
||||
|
||||
Not a frontend asset like the above, but also baked into this app's own
|
||||
Docker image (not a separate container the way kiwix-serve/gpsd are —
|
||||
see `docs/deployment.adoc`/`docs/development.adoc`): the `pmtiles` CLI
|
||||
|
||||
Reference in new issue
Block a user