randy 4a3862189f
CI / check (push) Successful in 19s
CI / deploy (push) Successful in 16s
Track what was actually built, and flag when it's stale
The .pmtiles files themselves carry no record of what upstream
snapshot they came from — only a local mtime. Each successful build
now writes a small sidecar (offline.pmtiles.meta.json: the Protomaps
build date used; terrain.pmtiles.meta.json: the Mapterhorn source
names/md5sums) recording that, surfaced in the panel next to the
existing size/updated line.

New GET .../check-update routes compare the recorded build against
the live upstream index/manifest — true/false/null, null meaning
"don't know" (no local build yet, or the check itself failed) rather
than a false "no". Kept separate from the plain status endpoints
(which map.js's own topbar dot hits on every page load) since this
one reaches an external service; only called once when the Offline
data panel is actually opened.

Also: flag emoji next to each country in the picker (derived from the
ISO code via Unicode regional indicators, no image assets needed).
2026-09-11 13:18:32 +02:00
2026-09-09 17:38:53 +02:00
2026-09-09 17:38:53 +02:00

MapTool

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.

S
Description
No description provided
Readme
2.2 MiB
0 Stars 1 Watchers 0 Forks
Languages
JavaScript 48.7%
Ruby 43.6%
CSS 6%
HTML 1.2%
Dockerfile 0.5%