b0c93d10d775696b4bfe7c927fb5f2dc4e187ae1
Watched the session from the last two commits actually get saved: Garmin updated its `end` field from the future 24h placeholder to within a second of the last point's own time, immediately — much faster than the recency-of-last-point fallback alone would have noticed (that only flips after ACTIVE_WITHIN with no new points, so a just-saved session with a last point seconds old would still read as active for up to 30 more minutes). Now checks end-already-in-the-past first (authoritative and near instant when Garmin has set it), falling back to point recency only when end still shows the future placeholder — the case an abandoned, never-saved session never updates.
MapTool
Table of Contents
A mapping application written in Ruby with Sinatra.
The project’s shape is still open — this is the initial scaffold.
Status
Early scaffold. The web application serves a vector map (MapLibre GL JS), with an online style and an optional offline style backed by a local PMTiles file, an animated RainViewer radar overlay, GPX upload/display (points and tracks, organized in folders), and a live position marker from a local GNSS receiver via gpsd.
Requirements
-
Ruby (see
.ruby-version) and Bundler
Getting started
bundle install
bundle exec puma -C config/puma.rb
Then open http://127.0.0.1:4567 in a browser.
Languages
JavaScript
48.7%
Ruby
43.6%
CSS
6%
HTML
1.2%
Dockerfile
0.5%