Press "Enter" to skip to content

MTB Trail Mapping Workflow with OpenStreetMaps

Last updated on December 27, 2020

With recent map drawing activities (1, 2, 3) I’ve been asked about the process I use for creating maps. What follows here is the workflow I used with OpenStreetMap (OSM) for the CRAMBA Stony Creek MTB Trail Maps, and hopefully others will find it useful.

I expect I’ll be following this same workflow for the next maps created, and even possibly revising previous ones using this process because it provides more solid base data than my previous method which consisted of little more than manually tracing SVGs of GPS tracks in Illustrator. It also helps get more map data in OSM, which is basically the cartographic version of Wikipedia.

One note, using OSM data in your maps requires that the resulting map be licensed under the Creative Commons Attribution-ShareAlike 2.0 Generic (CC BY-SA 2.0) license. This basically means that anyone else can redistribute and reuse the map (or portions thereof), as long as they provide appropriate attribution and license their version in a similar way. As I’m intending these maps to be freely used by the general public (as part of my work with CRAMBA) I’m happy to do so, but others should be aware of these restrictions before getting too far along in the process.

Here’s the workflow:


  1. If all trail data needed for a map is already in OpenStreetMap (OSM), skip to step 5.
    • Walk trail routes with GPS recording the route.
    • Walk slowly / evenly.
    • Recordings done via cycling GPSs are likely not sufficiently accurate.
    • Multiple passes will allow for more accurate drawing.
    • Recording waypoints is convenient for noting intersections, features, etc.


  2. Upload GPS data (as GPX) via OpenStreetMap’s Public GPS Traces page.

  4. Use JOSM (Java OpenStreetMap Editor) to add the newly mapped routes to the OSM database.
    • Be sure to appropriately set properties (as appropriate: highway=path, bicycle=yes, foot=yes, oneway=yes, etc).
    • Consider using MTBtagger presets.
    • Consider performing in-depth MTB trail marking as per OpenStreetMap Wiki – Mountainbike.


  5. Validate changes then upload changes with an appropriate description.

  7. Visit OpenStreetMap, use the Slippy Map to show the data to be used for map generation.
    • Click Export and download an OpenStreetMap XML Data file of this data.
    • Alternately, OSM XML data can be downloaded using wget from an appropriate server using a query such as wget --timeout=0 "[bbox=-83.3172,42.631,-82.9011,42.8668][highway=*][@meta]" -O mfo.osm. See here, here, and here for more information.


  8. Convert the OSM XML data to Illustrator format using
    • Command line most useful for US maps: --input=map.osm --projection=mercator
    • seems to require a bunch of MySQL modules, but these are not necessary if just doing a simple conversion.
    • Only module needing installation on OS X 10.6 seems to be Geo::Coordinates::OSGB.
    • Alternate methods for exporting to Illustrator format can be found here.


  9. Open resulting file in Illustrator, segment data into logical divisions. Single track, two track, roads, water, etc. Remove unnecessary data.
    • Maps seem to come with a fair bit of extra cruft, including county outlines, unneeded political divisions, etc.
    • Hide / archive unneeded data (in a hidden layer) instead of deleting it.


  10. Create separate layers and groups for logically separated data. This makes changing line formats easier. For example, I separate out:
    • Trails
    • Roads
    • Water
    • Intersection Markers
    • Points of Interest
    • Routes: Race routes, group ride routes, etc.
    • Text and Decoration: Frame / legal notices / logos / key / scale / compass rose / version stamp.


  11. Convert any arrows to outlines, as some PDF viewers don’t display arrowheads properly.

  13. Solicit feedback on the map from a variety of people to ensure the map is readable and understandable. I personally try to get feedback from:
    • Those familiar with trails: Can spot errors and omissions.
    • Those unfamiliar with trails: Can spot confusing sections / point out gaps in information.
    • Non-mountain bikers: Sanity check of general readability and usefulness of map to other user groups.


  14. Check that the map is readable when printed in both color and black and white.
    • Adding texture (dashes, curved edges, etc) to paths adds to readability.


  15. Check that map is readable on-screen in color to those with various colorblindness.

  17. Save A Copy… in Illustrator as PDF.

  19. Open PDF in Adobe Acrobat Professional. Optimize PDF discarding as much data as possible. Save PDF.
    • Remove layers, transparencies, etc.
    • Without this step the PDF will be larger than needed, and some non-Adobe viewers won’t display map as expected.


  20. Use Acrobat Professional to add hyperlinks as needed.
    • Logos / Organization Names: Link to organization’s websites.
    • Licenses: Link to full license info (eg: CC-BY SA 2.0).
    • Address: Link to Google Maps / Bing / etc. search result.


  21. Save final PDF.

One Comment

  1. Libby Dwyer
    Libby Dwyer January 7, 2013

    Hi Steve, My name is Libby Dwyer and Stephanie Loria at Addison Oaks gave me this link as I am working on a map very similar to yours highlighting the equestrian trails at Addison Oaks. I intend to create a 2nd map with connections from Addison oaks to points beyond, like Cranberry Lake Park, the Polly Ann & Paint Creek Trails and hopefully Bald Mountain Recreation Area. I am also considering the Oakland County pathway concept and Oakland Township’s Safety Path and TRail Network. It is my goal to see if all of these government entities are working together and considering each other’s plans as they move forward with non-motorized pathways. I found your instructions very helpful. I don’t own a GPS at this point, so I’ll have to skip steps 1-6. Would it be possible for you to share the Adobe Illustrator file(s) you created? It would save me a lot of work. Feel free to give me a call: 248-693-1212. Thanks!

Leave a Reply