Proposed features/Drop stop positions and platforms

From OpenStreetMap Wiki
Jump to navigation Jump to search
Drop stop_positions and platforms
Status: Proposed (under way)
Proposed by: Zverik
Tagging: public_transport=*
Drafted on: 2018-03-18
RFC start: 2018-03-18


Seven years ago the Public Transport Proposal introduced, among many useful things, three tags:

They duplicate existing mandatory tags to this day, and contribute the most to the compexity of mapping public transport infrastructure.

I propose to make them optional, and to continue using the common tags for marking (or not marking) stop positions, platforms and stations.


When the public transport (PT) proposal was made, it seemed natural: let's put all the PT tags into the single namespace. Things that are on the road or railway are stop positions, things that are away are platforms, and why stations for buses and trains have different tags. Unifying all that would be great, and everything related to PT falls into a neat structure.

Many people agreed with that at the time, myself included. But with time, we see that mapping public transport infrastructure is seen to be even more complicated than it was before the proposal. When once it was enough to put a highway=bus_stop + name=* on a bus stop, now one has to read the proposal and check which tags should go on a platform, which on a stop position (do you remember where bus=yes goes?)... And turns out you also have to do double work, since there are stop positions for everything now.

So while the new schema tried to make PT tagging nice and structured, it failed. That's why:

  • History won't go away. By the time the proposal was made, we already had hundreds thousands of stops and platforms mapped, using tags that were introduced around 2006. No way we could retag these, so instead of changing tagging, we ended up having two tagging schemas, and we had to follow both. And what's worse, meaning of tags is still unclear: for example, I've seen many times how railway=station and public_transport=station for a same railway station were different objects, with no clear system.
  • Confusion over mandatory and optional. For a long time bus stops were mapped as single nodes besides a road, tram stops were nodes on a railway track. The PT proposal defined unified tags for stop positions and platforms without any clear precedence. Which means, you have to map as much as you can. Which means, suddently for a single stop you have to map at least two objects, and possibly make a relation linking these together. Too hard.
  • No rendering. Having a visual representation depend on auxiliary tags, like bus=yes, prevented the standard style from rendering bus stops and platforms until 2017. And even now you cannot render stop with certainty because of duplication of stop positions and platforms: which do you choose, knowing that any of these can be absent?

Returning to mapping the PT infrastructure the old way will not change anything for data contributors: they haven't really adopted the new PT schema. It will just simplify PT tagging, remove ambiguities, and allow for much more mappers to map their public transport without doubt and confusion.



Instead of (or along with) public_transport=platform, use:

Mode Tag Comment
Bus or trolleybus highway=bus_stop Wiki recommends adding trolleybus=yes on a bus stop that serves trolleybuses.
Tram railway=platform
Train railway=platform
Aerialway not mapped See also aerialway=station.
Ferry man_made=pier See also amenity=ferry_terminal.

Note that you can set highway=bus_stop and railway=tram_stop on a single node if needed. No extra tags are required.

Stop Positions

For some modes of public transportation, stop positions can be left not mapped: they are easily calculated from platform locations and route ways. For others, there are already established tags.

Instead of (or along with) public_transport=stop_position, use:

Mode Tag Comment
Train, light rail, subway, monorail railway=stop Note that for small stations, halt or even station can be used. See tag descriptions for details.
Tram railway=tram_stop
Bus and trolleybus not mapped In some regions highway=bus_stop is put on highways.
Aerialway not mapped An end of an aerialway is always its stop position, otherwise see aerialway=station.
Ferry not mapped


Instead of (or along with) public_transport=station, use:

Mode Tag Comment
Bus or trolleybus amenity=bus_station
Train, light rail, subway, monorail railway=station
Aerialway aerialway=station
Ferry amenity=ferry_terminal

Features/Pages affected

All the pages related to public transport. The three tags will be marked as obsolete on their tag pages, and optional on other public transport pages. The list of alternative tags, the table above, will be copied where needed.


Please comment on the discussion page.