Restructure the map controls from MapLibre corner buttons into a left sidebar of icons with flyouts/panels (radar, GPX, GNSS), matching OsmAnd's layout more closely: - Base map and GPX selection are now full-height side panels docked next to the sidebar (not small dropdown flyouts or a right-docked panel), opening/closing exclusively via a small shared event bus (panels.js) so only one is ever open at a time. - The GPX panel's upload/new-folder controls are now icon buttons in the header instead of an always-visible dropzone and form; dragging a GPX file onto the tree, a specific folder, or straight onto the map itself all upload it. - New: Maptool::GpsdClient (lib/maptool/gpsd_client.rb) streams live GNSS fixes from a local gpsd daemon over Server-Sent Events (/api/gnss/stream) to a marker on the map (public/js/gnss.js) — one background gpsd connection shared by every browser tab. - The online map style (public/js/osmand-style.js) is now styled to resemble OsmAnd's own rendering, applied to both the online and offline (PMTiles) styles. Also adds a GeolocateControl (browser geolocation) next to the zoom controls.
38 lines
944 B
Plaintext
38 lines
944 B
Plaintext
= MapTool
|
|
:toc:
|
|
:toclevels: 2
|
|
:source-highlighter: rouge
|
|
|
|
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), styled to resemble https://osmand.net/map[OsmAnd's own map], 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
|
|
|
|
[source,shell]
|
|
----
|
|
bundle install
|
|
bundle exec puma -C config/puma.rb
|
|
----
|
|
|
|
Then open http://127.0.0.1:4567 in a browser.
|
|
|
|
== Documentation
|
|
|
|
* link:docs/architecture.adoc[Architecture]
|
|
* link:docs/development.adoc[Development guide]
|
|
* link:docs/third-party-notices.adoc[Third-party notices]
|