Switch to vector maps (MapLibre GL JS + PMTiles) and add RainViewer radar
Replace Leaflet/raster tiles with MapLibre GL JS: an online OpenFreeMap style and an offline style built from a local PMTiles archive via pmtiles.js and protomaps-themes-base (no glyphs/labels offline by design, see docs/architecture.adoc). Frontend libraries are vendored locally rather than loaded from a CDN so the app keeps working with no internet access. Also add an animated RainViewer precipitation radar overlay (toggle, play/pause, scrub slider), matching the default time window of the weather-radar-card Home Assistant integration.
This commit is contained in:
1 parent
7329497e95
commit
5afb130c45
19 files changed
+1378
-14
No files matched your search
@@ -18,6 +18,38 @@ via the `rerun` gem instead:
|
||||
bundle exec rerun -- bundle exec puma -C config/puma.rb
|
||||
----
|
||||
|
||||
TIP: Browsers apply heuristic caching to static files even without
|
||||
explicit cache headers, so an edit to `public/` (or `views/`) can
|
||||
appear not to have taken effect on the next reload. Force a real
|
||||
reload (e.g. Ctrl/Cmd+Shift+R) if that happens.
|
||||
|
||||
== Offline map data
|
||||
|
||||
To enable the offline style, place a PMTiles file at
|
||||
`data/offline.pmtiles` (see `docs/architecture.adoc` for how it is
|
||||
served and styled). It is not part of the repository — obtain or
|
||||
build one locally:
|
||||
|
||||
* The simplest source is a pre-built extract from
|
||||
https://app.protomaps.com[protomaps.com's extract builder] — pick a
|
||||
region and download it as `.pmtiles`. Its schema is what
|
||||
`protomaps-themes-base` (the styling library used for the offline
|
||||
style) expects.
|
||||
* To convert some other vector tile source (e.g. an `.mbtiles` file)
|
||||
into PMTiles, use the
|
||||
https://github.com/protomaps/go-pmtiles[go-pmtiles] CLI:
|
||||
`pmtiles convert in.mbtiles data/offline.pmtiles`.
|
||||
|
||||
Once the file is in place, `GET /api/offline-tiles` reports
|
||||
`available: true` and the map defaults to the offline style.
|
||||
|
||||
This is picked up automatically for `cargo tauri dev` (it just runs
|
||||
the Sinatra app from the project root). To ship it inside a *packaged*
|
||||
build, add it to `bundle.resources` in `src-tauri/tauri.conf.json`:
|
||||
`"../data/offline.pmtiles": "data/offline.pmtiles"`. Not added by
|
||||
default, since these files can be large and are picked per
|
||||
deployment.
|
||||
|
||||
== Desktop shell (Tauri)
|
||||
|
||||
=== Prerequisites
|
||||
|
||||
Reference in new issue
Block a user