OpenStreetMap

Railway Tagging

Posted by AshKyd on 21 July 2009 in English.

I'm fairly interested in railway stations and the associated micromapping that comes with them.

One particular thing that I'm interested in is getting platforms to render nicely on the main layer. It's not one of those crucial things, and obviously nobody's been interested enough to push it through to date, but once you start mapping at a higher level of detail, you'll get odd gaps in your map where platforms should be.

I noticed that some of the platforms around Brisbane started rendering sometime after the new API was released, and thought that maybe something had changed. Upon further observation I found that someone had simply added the tag "building=platform" so it would render as a building. This is wrong whichever way you look at it.

Then it occurred to me that because platforms are routable (area=yes,) and always allow pedestrian access (except I presume in some fringe cases,) so why not add the tag highway=footway and render it as a general purpose pedestrian area?

I implemented this on my local railway station, and it now renders rather sportingly as a light grey area on the Mapnik layer. I then went and applied it to the other station with the broken building tag, but it's yet to update.

I know what you're thinking, "Don't tag for the rendered!" and you're right, but I'd argue that this isn't necessarily a hack. I'd argue that it makes routing easier because it can direct pedestrian traffic along a platform (where appropriate) instead of having to know whether railway=platform can be traversed. I'd also put forward that if the Mapnik stylesheet ever were to be updated to reflect platforms they should render like this anyway because it's a neutral colour, keeps with the existing colour scheme, and is perfectly clear as to what it is.

So there's my justification, what's your opinion? Hack or neat trick? Should we work on the Mapnik stylesheet to implement this the “right” way, or would you consider this an appropriate measure?

Discussion

Comment from chillly on 21 July 2009 at 15:04

Hack, but not terrible. Platforms are platforms, not highway=pedestrian. Use the tag railway=platform (already in map_features) and either change the renderers to render it yourself or ask (via the mailing lists) that someone else do it. Then encourage routing program authors to include it since platforms are clearly an important transport interchange.

Comment from jorkh on 21 July 2009 at 15:59

Hi,
I don't know how good your german is, but you should take a look in the german lists for tagging public transport.

Comment from dmuecke on 21 July 2009 at 20:14

Some Germans have put their thoughts on the wiki. See for more here http://wiki.openstreetmap.org/wiki/User:Oxomoa/Public_transport_schema

Comment from Biogenesis_ on 21 July 2009 at 22:26

I think there's a limit to how much say a routing programme should have on deciding where you go. If you need it to tell you to walk onto the platform then you've missed out on a cornerstone of civilization. A routing programme should just say "go to station x", then let your brain do the rest. At most it should tell you where the ticket booth is, but this is only non-trivial at train stations such as Central, in Sydney.

From a rendering perspective I think it's a great idea to map any extra detail that can be humanly collected. This is what separates OSM from commercial maps: we bother collecting data which is not commercially viable to collect. From this perspective railway=platform is probably the most logical tag. A platform is more than a footway area, it's a raised concrete structure, often with seating/toilets/cover/etc.

That seems to raise another issue: should toilets inside a train station (ie: beyond the turnstiles) be tagged fee=yes in Australia?

Oh, and nice work on the house numbers :). They certainly make the map look a lot more complete! It will need a lot of volunteers to get a complete set of data though. Maybe somebody should work on an "un-numbered street" map to join the noname/maplint layers.

Comment from AshKyd on 21 July 2009 at 22:45

A routing programme should just say "go to station x", then let your brain do the rest.

I mean, if you've got a platform between you and your destination. I'm thinking in particular if there's a rail bridge only accessible from the platform and the platform itself isn't routeable (because the router doesn't understand railway=platform,) it may send you on a wild detour to the nearest routable railway crossing.

I've used railway=platform on this particular station, just added the extra tag for added semantics.

Comment from AshKyd on 21 July 2009 at 23:18

Another thought: I don't think it's a good idea routing algorithms having to support an exhaustive list of tags when solutions like this can provide unambiguous hints. The sleepier I get, the more strongly I'm convinced this is a good idea. >_>

Comment from davidearl on 22 July 2009 at 08:16

Err, what's the problem: railway platforms *are* rendered already on the Mapnik layer: http://www.openstreetmap.org/?lat=52.604392&lon=0.366216&zoom=18&layers=B000FTF

Comment from AshKyd on 22 July 2009 at 08:36

That's really odd, because none of the stations I've put in are rendering. That's both ways and areas, and I have absolutely no idea why. Here's a prime example with both a way and an area platform, neither are rendering.

Comment from RichardB on 22 July 2009 at 11:50

davidearl: Are you sure. I can't see anything on the Mapnik layer. I *can* see something on the Osmarender layer however.

These also work in the example you link to, Ash Kyd - both on the area and way.

Log in to leave a comment