Sunday, November 8, 2015

MapBuilder: Pimp Your Topo

I've never been happy with CalTopo's reliance on USGS 7.5' topo scans.  While I expect them to remain the gold standard in backcountry navigation for years to come, in some places they're quite out of date.  Even when they aren't, it's difficult to use them for high level trip planning - zoom out a couple levels and it's hard to see trails or read the text.  Often I'll zoom in to trace out a trail, then zoom out to get the high level picture.

Vogelsang Pass, Yosemite.  At zoom 13, you can barely follow the trails.
I've thought about building my own map layer to address this for years.  The tools are all out there - throw an OpenStreetMap snapshot and some government datasets in a PostGIS database, write some Mapnik styles and put a tile server in front of it all.  The hard part is striking the right visual balance and making it all look good.  Should the map be crowded with details, or sparse and easy to view?  Are public/private land boundaries important, or should they be hidden?  At wider zooms, which features do you keep and which do you progressively phase out?

Much better.
On a backpacking trip this summer, I realized I was thinking about the problem wrong.  CalTopo is all about letting users customize the map they're looking at, and an in-house topo shouldn't be any different.  Instead of creating a single topo layer, I should be letting users design their own.

MapBuilder, the product of that realization, is now here - although it's still in "beta" and under active development.  Once I get things running smoothly, several pre-configured map layers will remain free, while the custom MapBuilder tool will become a pro-level feature.



As with the other custom layers, get started by choosing "Add MapBuilder Layer" under the new layer menu.  A dialog pops up with a bunch of design choices; click Save and your custom layer will show up in the dropdown next to all the others.


There are also two pre-configured layers in the Topographic Maps section of the standard layer dropdown, although their composition may be subject to change.  MB Topo looks like a basic topo map, while MB Aerial uses an aerial imagery background and drops some of the clutter, like peak names and park boundaries.

Anyway, enough with the talk, here's a quick tour.

MB Topo view of the Marin Headlands

MB Aerial rendering of the same spot

MB Topo rendering of Mt Olympus, WA
Custom Grand Canyon map that emphasizes trails.
Custom high-level planning map of Cascade Pass, WA.
Custom map of Logan Pass, Glacier National Park, MT

Some caveats:
  • The data I'm using for relief shading has some issues with wide zoom levels.  It should be fixed in a week, but until then North-facing slopes may look rough.
  • OpenStreetMap trail data includes some common cross-counry travel routes, like the Whitney MR and the DC and Emmons routes up Rainier.  So far I haven't figured out how to distinguish them from actual trails.
  • The PDF generator creates high resolution maps by zooming in and then shrinking everything down.  With layers that change at each zoom level, this makes text and features really small.  I hope to have a solution soon, so that MapBuilder layers will print acceptably.
  • Since this is under active development, existing maps may cease to work or suddenly start looking different.
  • Remember, once I get the bugs worked out, custom layers will become a pro-level feature, but several preconfigured layers will remain available.