6f7d332993e74c05e314845e157062ceb23c289e
The badge and category glyphs were registered as SDF images (a single alpha shape MapLibre tints at render time via icon-color) purely so one shared sprite could be recolored per category. But SDF rendering assumes the source actually encodes a distance field — a smooth multi-pixel gradient at every edge — and these were just normally antialiased rasters (a sharp ~1px transition). MapLibre's SDF antialiasing pass softened every edge as a result, visibly blurrier than the base map's own icons, worst on the small category glyph. The glyph color never varies (always white), so it never needed runtime tinting at all: _registerCategoryGlyphs now bakes #fff directly into the raster and registers one plain image per category. The badge color does vary (arbitrary per-file hex), but a real POI export only has a handful of distinct category colors, so _registerBadgeColors rasterizes one sharp image per distinct color actually present in the points being shown, cached by color, instead of one shared image tinted at render time.
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.
Documentation
Languages
JavaScript
48.7%
Ruby
43.6%
CSS
6%
HTML
1.2%
Dockerfile
0.5%