Files
maptool/docs/third-party-notices.adoc
T
randy ede21454a2
CI / check (push) Successful in 22s
CI / deploy (push) Successful in 12s
Draw offline hiking trails sharing a path as parallel lanes
Several marked routes running down one path drew as a single line, only
the topmost color visible. maplibre-gl-lanes puts each route in its own
lane; OSM relations already share exact vertices, which is all it needs.
One LaneLayer across every picked country; click hit-testing and the
highlight move to queryLane/setHighlight.
2026-10-09 21:46:05 +02:00

5.7 KiB
Raw Blame History

Third-party notices

Frontend libraries vendored under public/vendor/ instead of loaded from a CDN, so the app keeps working with no internet access. All are BSD-3-Clause licensed.

Library Version Source

MapLibre GL JS

6.6.0

https://github.com/maplibre/maplibre-gl-js

pmtiles (pmtiles.js)

4.5.0

https://github.com/protomaps/PMTiles

maplibre-contour (Overlays panel’s "Contour lines", public/js/contour.js)

0.1.0

https://github.com/onthegomap/maplibre-contour

Also vendored under public/vendor/, but not BSD-3-Clause like the above — MIT-licensed per its own package.json (the monorepo’s top-level LICENSE.md separately places the whole repo in the public domain as a work of the US government; either way, no attribution is required):

Library Version Source

NPS Home Button (home-button)

0.0.1-d

https://github.com/nationalparkservice/npmap5-plugins/tree/main/home-button

NPS Overview Map (maplibre-gl-overview)

5.0.1

https://github.com/nationalparkservice/npmap5-plugins/tree/maplibre-gl-overview

The overview map is vendored from an unmerged branch, not main (see docs/nps-resources.adoc), and converted from its UMD dist build to a plain ES module — no functional change except the module wrapper. It was also patched for a MapLibre API break: it reads map.transform (public in the MapLibre ~2.4 this plugin targets) to relax the overview’s polar pan limit, but MapLibre 6’s Map no longer exposes .transform at all — guarded to skip that (cosmetic) adjustment instead of throwing when it’s absent.

Also vendored under public/vendor/ — MIT-licensed, attribution required (LICENSE included alongside):

Library Version Source

maplibre-gl-lanes (offline hiking trails, public/js/hiking_trails.js — trails sharing a path drawn as parallel lanes); its dist/*.mjs build, minus the trailing sourceMappingURL comment

1.3.0

https://github.com/c0nsumer/maplibre-gl-lanes

Also vendored under public/vendor/ — MIT-licensed (© 2013 Panayiotis Lipiridis), attribution required (this notice satisfies that):

Library Version Source

flag-icons (just the square 1x1/ crop, only the 39 European countries lib/maptool/data/europe_countries.geojson lists — see public/js/offline_data.js)

7.5.0

https://github.com/lipis/flag-icons

Offline map text labels need font glyphs too (see docs/architecture.adoc), vendored under public/vendor/fonts/ — SIL Open Font License, not BSD-3-Clause like the above:

Asset Source

Noto Sans Regular/Italic/Medium glyph PBFs (ranges 0-255, 256-511 only)

protomaps/basemaps-assets (fonts/, OFL.txt included alongside)

National Park (Bold weight only, .woff2), topbar wordmark (.topbar__brand, public/css/style.css) — see docs/nps-resources.adoc

nationalparktypeface.com (Ben Hoepner, Andrea Herstowski, Jeremy Shellhorn / DO Studio) — "published for free use under the SIL Open Font License" per the site; no OFL.txt ships in its own download zips, unlike Noto Sans above

The map style — OpenFreeMap "liberty", built from OpenStreetMap data — is used two ways (see docs/architecture.adoc): fetched live at runtime for the "Online" layer, and as a one-time vendored snapshot (public/vendor/liberty-style/liberty.json) that the "Offline" layer repoints at local data instead. Its icon sprite is vendored the same way, under public/vendor/liberty-sprite/ (ofm.json/ofm.png
@2x variants, from tiles.openfreemap.org/sprites/). Neither has been re-checked against a specific upstream version pin the way the table above does — re-fetch both from tiles.openfreemap.org if Liberty’s own style/sprite ever visibly drifts from what’s vendored.

data/offline.pmtiles (lib/maptool/pmtiles_builder.rb’s in-app regeneration, or the manual recipe in `docs/development.adoc) is built at build time, not vendored, from Geofabrik's per-country OpenStreetMap extracts (ODbL).

terrain.pmtiles (same regeneration mechanism) is extracted at build time, not vendored, from 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 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): three CLI tools lib/maptool/pmtiles_builder.rb shells out to for offline.pmtiles/ terrain.pmtiles regeneration.

Tool Version License Source

go-pmtiles (pmtiles CLI)

1.31.2

BSD-3-Clause

https://github.com/protomaps/go-pmtiles

Planetiler (planetiler.jar)

0.10.2

Apache-2.0

https://github.com/onthegomap/planetiler

osmium-tool (osmium, installed via the osmium-tool Debian package)

(Debian trixie’s packaged version)

GPL-3.0

https://github.com/osmcode/osmium-tool

To update a vendored library: download its package (e.g. npm pack <name>@<version>), replace the corresponding files under public/vendor/<name>/, and update the version in this file. To update go-pmtiles or Planetiler, bump PMTILES_VERSION/ PLANETILER_VERSION in the Dockerfile and the version here — osmium-tool tracks whatever version Debian trixie currently packages, nothing to pin on this side.