maplibre-gl-lanes v1.0.0
The old (outdated) print RAMBA map was the inspiration for the parallel lines/lanes (public transit-style) maps on trailmaps.app. They functioned, but I wasn’t super happy with how they looked. It worked by using the built-in line-offset and bolting on a bunch of fixes at map generation time. This looked… mostly okay… but fell apart at complex intersections and had lots of back-and-forth transitions.
I realized that a better way to do this would be via a plugin for MapLibre GL JS which calculates and draws these routes as zoom changes. It turns out there are papers from 2018-2021 about software called LOOM (Line-Ordering Optimized Maps: 1, 2, 3, 4) and a reference implementation or and it did basically this, but with the intention of transit maps themselves.
So, a few weeks ago I fired up the clanker† and set it to work implementing this, via a plugin, without using any existing code, which c0nsumer/trailmaps.app-map-generator would be able to use for drawing the lines on my maps. After a bunch of back and forth, some really interesting learning about having multiple agents (on different packages) coordinate their work and testing (a plugin + its consumer), and a late-night session to tie things up (interestingly, after riding a bunch of RAMBA trails that afternoon), it’s now live at v1.0.0: c0nsumer/maplibre-gl-lanes (and via npm).
I’m really, really happy with this. Here is the demo from GitHub pages that allows you to A/B the simple line-offset and / plugin drawing styles, or if you look at my current maps for RAMBA or Glacial Hills you can see it in action. While not as key, it really makes Burchfield pop.
It looks particularly good on maps of routes like those for Massive Fallout and De Ronde van Grampian where there’s just 3-4 routes of varying lengths with some overlap. I can’t share those maps publicly yet, but this image shows a bit of it.
There’s also been some further tweaking to the map generator, such as not drawing the thin white lines under the trail routes, better coloring (heavily inspired by NPS Park Tiles), showing swamps and railroads, which have helped make things even better, but the bulk of the improvement is from this plugin.
More to come on map improvements, including possibly adding a color-by-difficulty option for trail systems that only color/designate their trails this way (eg: Copper Harbor, NTN), but that’s all going to take some planning and thinking.
† A laptop that I use for running Claude, accessed via SSH. I should probably write something up about this later…

