Here is an high level overview of the process I use for building my own custom hiking trail map. The data I’m using (trails, summits, etc…) are available as open source from OSM. After I fetch and clean up the data I use MapBox to generate the map tiles, in a map style I designed.
- Query TrailsNH to determine what areas I want to build a map for. Divide the area up into chunks (regions) to make processing manageable.
- Query OSM using the Overpass Turbo API, by region, by type of data I want (trails, peaks, etc…). This is where the Regions help, Overpass will time out if you select too much data. From this process I end up with 1 JSON file per Region, per data type.
- Clean up the data, apply local preferences, and generate merged GeoJSON file. The merger gets memory intense so I had to bump up the PHP memory limit from 128MB to 768MB.
- From here the data goes two ways:
- Put into the TrailsNH DB for searching place names and other uses.
- Imported into MapBox for generating map tiles, using a custom map style I designed.
The custom trail map looks pretty good don’t you think?
You can see the results in an interactive (slippy) map, built using Leaflet and Mapbox. The interactive map also has live GeoJSON data added to it from TrailsNH, like: snow reports, trail advisories, and forest road closures.
- Include additional data types on the map, like: power lines, springs, camp sites, shelters, huts, view spots, and waterfalls.
- Done/Added: springs, camp sites, shelters, huts, view spots.
- Add new user features to TrailsNH using the new data: