Transport Map

I recently added a new Transport layer to OpenCycleMap, which some of you will have spotted, and I hope you find interesting. The eagle-eyed among you may even have spotted it as one of the maps on Grant’s curious OpenWhateverMap!

Transport Map

I first visualised bus routes in 2008, and ran a few experiments on railways as part of an experiment in terrain maps just over a year ago. In the mean time I’ve had these ideas on the back burner while I focussed on OpenCycleMap, but recently made some space to put them together into a fully-fledged project. I’m not the first to make a transport map, with öpvnkarte being a famous but no-longer-updated example, but the cartography is something personal that I have my own take on and I enjoy the challenge of creating special-interest maps. So while taking a break from terrain-data processing I put the transport map together. There are certain features of the map that are drawn directly from OpenCycleMap, and there are new developments that I will eventually re-incorporate too.

One of the phrases I started using a few years ago is “render and they will map” – or, in other words, if you are interested in a particular aspect of mapping data being improved then the best way to encourage mappers to improve that is to make it visible and useful. Certainly after I started rendering cycle routes their number in OpenStreetMap increased dramatically, and similarly for the other specialist things in OpenCycleMap. I’m hoping that my world-wide transport layer will encourage similar things in the area of transport data such as adding greater detail to railway stations. In the UK we have patchy levels of detail in bus stops and bus routes; even in London many bus stops have obvious errors in their names. I suspect since they aren’t shown on the current mainstream maps nobody is noticing (and hence fixing) the problems, but, over time, the data should mature and the transport map will therefore improve too.

Another aspect of the OSM data is the high level of detail in the data, which can make some mid-range zoom levels incoherent. I’ve tackled these in two different ways – for example, railway yards and sidings can be distracting when looking at inter-city rail corridors, but the transport map checks for the appropriate tags to hide them where possible. However, the tags aren’t widely used at the moment since they aren’t rendered on other maps, but in this way my map will improve over time as the mapping volunteers add ever greater details. In contrast, I’ve used the station buildings to obscure some of the track details at mid-zoom levels, and gone one step further in simplifying the building geometries at the same time – but losing some of the complex detail of OSM can give better cartographic results. I’ve got further examples and some experiments lined up, and if my talk is accepted I’ll be discussing these at State of the Map Europe later in the year.

For now I’m working on speeding up the rendering – this is the first full-blown map I’ve made with Cascadenik and the performance is surprisingly poor. I’ll be trying to nail down what’s causing this and share that with you soon. In the meantime I continue to work on the cartography and I’m interested in your feedback and questions.

26 thoughts on “Transport Map

  1. Gregory Marler

    Ah, I’ve been waiting for an updated transport map. It’s a bit hard mapping bus route relations fairly blindly. It turns out there is a lot less done in Durham than I had thought.

    One way routes don’t seem to be rendered. (Not even the fact that it’s a one way street) In some places this can cause quite an affect of where you should wait for a bus.

    railway=station, disused=yes, is rendered faded on the main mapnik style, but on your map it shows as prominently as a railway station without a railway line. Demonstrating that it’s a poor tagging choice/scheme. But it might be the case that it’s commonly used for railway stations in OSM.

    Thanks for making the map. Does it update on the minutely diffs?

  2. Andy

    The forward / backward bus routes stuff I’ve added to my cartography todo list – I’m hoping to get another batch of improvements to the map before easter so that might make it in. As for the railway stations, I think it’s dreadful tagging, the page documenting the disused=yes key now suggests not using the tag. Maybe we should bring it up on talk-gb?

    It updates from the minutely diffs, but only once a day at the moment. I need to get the rendering performance improved a bit before I update the database more frequently, but the update frequency is just a line in crontab.

    Thanks for the feedback!

  3. Gregory Marler

    I’ll try and remember to change the disused stations around here then.

    Once a day is acceptable/good for a transport map. It just find it helpful to know what I should do between mapping and checking admiring the result (in this case sleep rather than make a cup of tea).

  4. Tom Chance


    Thanks for this, it’s great to have another set of public transport tiles since opvnkarte stopped updating.

    Are you happy for people to start using these tiles on their own maps?

    Some random observations:

    * the underlying tile is very clean, very nice, and I like the use of soft pastel shades for info like bus stop groups

    * I find the group label for bus stops a bit confusing, do we really need it in addition to each bus stop?

    * Both yours and opvnkarte’s tiles had a similar problem with route labels – it’s never easy to follow where a particular route goes, or to know which routes go on any stretch of road. Looking at my local area even I struggle with some of the routes I don’t use. With routes I do use in areas I know well, I hardly need the map! I don’t know what the solution to this is if you just have static tiles (because interactively selecting a route to highlight it, or selecting a point and seeing routes on that point, would be ideal)

    * I’m glad you don’t show rail routes, they just become a meaningless overlay on top of the line because all rail lines should be part of routes. That’s a useful prompt for mappers to put them into the db, but totally useless for the average viewer.

    * In the spirit of encouraging good tagging, and because it’s useful to know when it’s raining, can you render bus stops with/without shelters slightly differently?

    * If you were to start adding in POIs (which I think is often done for the wrong reasons), I would be tempted to start with cafes at the lowest zoom levels as places to go and grab a drink if your bus is 10/15 mins away


  5. Pingback: Harry Wood Blog / Bus route rendering at RewiredState

  6. Andy

    I was experimenting with the group labels – it works well at the lower zooms (so only one label for each group) but at the zoom level where both are showing it doesn’t work as well as I’d hoped. The route labels thing is always a problem in places where there are (potentially) dozens of routes, so I’ll need to ponder new approaches. There’s already behind-the-scenes work to improve the bus route labelling beyond what you’d normally see from a naive rendering, but I take your point it could be better yet.

    I’ll consider your POI requests – I’m trying to keep this as a clean map but I’m sure I can add some more details.

  7. Matt Toups

    Nice map, Andy, thanks.

    I’d like to suggest rendering route=ferry and amenity=ferry_terminal as well on the transport map. (In some areas ferries are pretty important links between transport routes.)

  8. Andy

    The fonts is something that’s really annoying me – cascadenik recently dropped support for font-families, and there’s no workaround provided. That’s why, unlike OpenCycleMap, there’s no fallback to unifont glyphs for cyrillic, chinese and so on. Definitely something I want to see fixed, but I’m not sure if cascadenik is going to support it any time soon.

  9. Chris

    Well done on this. I’d been doing some experiments myself, but didn’t really get very far (mostly due to time and resource constraints). It’s good to see at least *something* since the demise of €PNV-Karte. Some of the stop grouping is a bit generous (I have seen some awkward ones where stops a mile or two apart share names) and I’m not sure about the TfL-style face for station names (looks rather odd 216 miles down the line), but on the whole it’s a very, very positive step.

    Couldn’t have come at a better time, given there’s a raft of service changes just this week down my way.

  10. Lennard

    Great work! Nice to see maps that try to massage OSM data, instead of just rendering whatever there is however complex or out of place it is for a given zoom level.

    However, when you say

    “However, the tags aren’t widely used at the moment since they aren’t rendered on other maps”

    you may have missed the fact that they are rendered on the main OSM mapnik map. It may be hard to notice, because these service=* lines are rendered just a tad thinner than regular lines, but they’re also dropped at lower zooms where regular lines are still shown.

  11. Andy

    Lennard – thanks, I stand corrected!

    Chris – yep, the bus stop grouping needs to be worked on – I found Edinburgh in particular had awkward ones, but I was surprised to find councils happily handing out duplicate stop names so far apart. I’ll either work on the rendering or start a campaign to change the stop names in the real world!

  12. Jonas

    A few small notes on the cartography, besides being interestingly pretty:

    highway=pedestrian is not rendered at all. This looks weird.

    In my opinion, street names are repeated slightly too often, making the map rather busy: (consider if each of the north/south streets only had their name repeated once or twice at most)

  13. Simon

    thanks for the great map!
    Currently, `railway=halt` isn’t rendered at all – please add this. Have you considered rendering the # of tracks?
    Do you plan to publish the stylesheet somewhere? It would be interesting to see, how some parts are implemented and to play around with it.

  14. cristi

    I’ve been using it to check the correctness of the bus routes I am working on.

    I find it beautiful, thanks for sharing.

  15. mdk

    I found your new map and it’s great.
    But here are a few things you could perhaps enhance:
    1) In switzerland there are so called “trolleybusses” which are electrified busses using an arial contact line. The routes are taged with route=trolleybus (see relation 103189)
    2) only render railway=rail if they don’t have a service=* tag. I think all the spur, yard and siding rails are not so interesting for the user. If you want to render them, than perhaps in a light gray.

  16. Strainu

    We would really love to see the trolley lines on your map (in green, for instance). I think this is the missing link on making your transport map a real replacement for other sources. Hope you’ll have the time to render that soon!

    ANother possible imporvement is to use the color hints given on metro or rail lines.

  17. Pingback: Capa de transporte público | OpenStreetMap España

  18. HB9DTX

    Great map. Could you add the funicular rendering? These sare very steep railways, pulled up by cables (the cable cars in St-Fransisco beeing a special case). Rendering could be for sake of simplicity be similar to “railways narrow gauge”, of like tramways. Better would be a dedicated color scheme for funiculars.

  19. Simon

    Hi Andy

    Great style, one suggestion: for railways you render service=yard substantially less promiment. I think it would be a good idea to render service=spur and service=siding similar.

Comments are closed.