I built a map to find sign-posted cycling routes across Europe and useful POIs. Looking for any feedback!

Excited to share an early version of my project - https://veloplanner.com

It’s an interactive map where you can find signposted cycling routes (not MTB yet) and various POIs (campgrounds, shelters, viewpoints, and historic points). Everything is powered by OpenStreetMap.

Currently, it only covers Europe since I wanted to limit hardware requirements. Even with just Europe, I needed an extra 1TB disk to handle data import. I’m planning to support the whole world in the near future.

Right now it’s just a viewer, but I plan to keep building and adding more features. Route planner will be main one to add. Also, I want to present detailed data about surfaces and bicycle infrastructure along the routes.

Tech stack:

  • MapLibre + TypeScript (no frameworks) for map rendering
  • Planetiler to generate basemap
  • osm2pgsql, gdal and tippecanoe to generate POIs and route layers (routes require extra post processing, which I do in Elixir)
  • Web app is written in Elixir/Phoenix

I’m hosting web app on Heroku and using Hetzner dedicated server to process OSM data.

Let me know what you think - any feedback is appreciated!

I would like to built some tools which could help identifying incomplete or incorrect mapping of cycle routes. Let me know if you need something like that or have any ideas what could be useful.

With this project I have two goals:

  • Make it easier for cyclists to find route and plan their trip.
  • Improve quality of cycling routes data in OpenStreetMap.
14 Likes

On your map, on hovering the name of a route is displayed, generally.
However, whenever the name of the route is a number, which is rather common in e.g. Denmark, I notice that you only display “unknown”.

Apparently you only pick the route name from the name tag, but it should not pose a problem to retrieve the proper “number-name” from the route relation, like others do (OpenCycleMap, Waymarked Trails, etc.)

When creating a route for OSM, if one does not provide a name tag, the editor automatically names the relation from the ref tag (at least JOSM does).

Here’s the depicted number-named route example from OSM:
Relation: 15 (153222)
network=lcn
ref=15
route=bicycle
type=route

Your indication of network type by line colour is fine, but some showing it on the on-hover label (not only the color-square) might add to user friendliness.
There is a graphical problem of line colour when multiple network types coincide, but frankly, most other renderings have the same problem.

Thanks for the feedback!

I will use feature ref tag as a fallback’s name. It will be available after I finish next data import.

For now, I added network type label inside popup (when you click) since there is more room for that. I hope that will be also quite user friendly.

2 Likes

New development :slight_smile: Just released early version of the route planner. It heavily favours existing cycling routes. It shows surface statistics and if you hover over given surface you will see it on the map.

https://veloplanner.com/plan

3 Likes

What exactly will this route planner do? I ask, because these routes already contain the exact pre-planned route.

It’s helpful if you want to create route based on couple of official routes. For example if you want to create a loop or if you want to plan few days trip along long distance route.

1 Like

I see Node Network routes are not included.

Node networks are collections of official waymarked routes, meant for planning trips of any length and shape.
Node network routes are usually rcn, sometimes lcn.

I will add them in one of the next releases. Just need to figure out the styling so they don’t overcrowd the map.

1 Like