sgelb

Mapline

[javascript, mapbox]

Create a collection of accurate maps in print quality along your gpx or kml track, in your scale, your format and the infos you need. You want a map in 1:85.000 on A5 paper along that winding river? Additional markers for camping sites and supermarkets? No problem.

Give it a try on the demo page!

A typical page
showing the track, distance markers and the overlaps of previous and next map
pages as well as some overall stats. Here, an example waypoint and markers for
drinking water and picnic sites are added as well. (Highly reduced image
quality)
A typical page showing the track, distance markers and the overlaps of previous and next map pages as well as some overall stats. Here, an example waypoint and markers for drinking water and picnic sites are added as well. (Highly reduced image quality)

Features

Waypoints and POIs

Waypoints contained in the GPX can set a symbol name through the optional sym field. You can set the used icon by specify any Maki icon by using their basename e.g. campsite-11 in this field.

Additional POIs can be downloaded via Overpass. To add more choices, see overpass.js. POIs are downloaded for print areas only. In case of format or scale changes, manually refresh by toggling the checkboxes.

Development

Logic and PDF generation of mapline are performed client-side. Main external libraries are Mapbox GL JS for map creation and jsPDF for PDF generation.

Before you can use mapline, you have to get your own Mapbox access token. Save it in src/mapboxtoken.js:

export default '<your access token here>';

Prebuilds

Since v0.16.0, a bundled version is published for tagged commits in prebuild/. See prebuild/README.md for more infos on how to use it.

Prebuilds are generated using git hooks, see git-hooks/README.md for details.

Limitations

An application written in Javascript, using WebGL and running entirely in the browser has of course some limitations.

Missing features and nice-to-haves

Want to participate?

Although development is really slow, this is not a dead project. Pull-requests are always welcome!