It’s my understanding that highway=bus_stop is used to represent the area where people wait, in some versions of the Public Transport specs public_transport=platform is also added. The wiki seems to be very explicitly (bold) agreeing with this.
A bus stop is a place where passengers can board or alight from a bus. Its position may be marked by a shelter, pole, bus lay-by, or road markings.
The highway=bus_stop tag is widely used on a node off to one side of the highway way to identify the position where passengers wait for a bus beside the carriageway.
I also believe that public_transport=stop_position is used on a way to document where the transport stops. The wiki backs this up.
Use public_transport=stop_position to identify the place where a vehicle stops along a public transport route to pick up or drop-off passengers (as distinct from the place where passengers wait for the service). This tag can be used for any transport mode, or combination of transport modes (including rail, bus, tram, flight, taxi and ship).
Use public_transport=platform and/or highway=bus_stop and/or railway=platform to identify the place where passengers wait for the service.
However, it seems there is almost 200k highway=bus_stop + public_transport=stop_position. This seems very contradictory to my understanding and the wiki. They look to mainly be in Europe but are dotted around the world. Some of these are being added surprisingly recently. 123456
I guess my questions are:
Is the wiki “agreed”? (specifically the overviews quoted, I know there is endless drama in the details)
This seems like a large number to just be “wrong tagging” is there history here? Is it valid tagging?
My understanding: the placement of the two public_transport tags is “agreed” in the sense that it was part of the approved Public Transport v2 proposal. While some aspects of PTv2 have been questioned or modified since, I think that aspect is widely accepted. I would say that putting either of these tags in the “wrong” place is an error or at least highly non-standard.
I think that while highway=bus_stop was always more widely used for the waiting area, a significant minority of mappers (and perhaps a majority in a few countries) used the “on the road” interpretation. I would consider placing this tag on the road an error in the places I map, but perhaps there are regions where it is the continuation of long-standing practice.
I suspect that some of the anomalies you see may be due to the confusing array of tags and concepts potentially involved in mapping a simple bus stop (taking into account stop_area as well as the tags mentioned, plus the non-intuitive use of “platform” for bus stops with no physical platform, plus the lack of clarity over whether bus=yes is needed on the “platform”).
Agreed. public_transport=platform/stop_position is clearly defined and should be sufficient to PT handling, rendering, …
For backward compatibility and for those areas, where PTv2 is barely used, highway=bus_stop does still exist.
Agreed. What I see here is that public_transport=platform is mapped as a way or area or MP.
Since highway=bus_stop is supposed to be used on node only, some mappers ask themselves where to put this node where there is a platform way, area, MP?
Some tools seem to support highway=bus_stop on nodes only.
Yeah! PTv2 has a section about backward compatibility regarding highways=bus_stop. This section requires bus_stop at the same location as the platform. But (being dogmatic) bus_stop is defined as a node and platform is mapped as a way and the mantra “one feature, one object”: how shall I map.
Also (and I wasn’t aware of this until now) the wiki page for platform says that highway=bus_stop belongs on “at most one of” platform and stop_position.
Isn’t it needed even where PTv2 is fully used, to say that a bus stop is a bus stop as distinct from some other form of public transport? I know that bus=yes is also used for that, but it seems to be semi-official at best.
Personally, I map bus stops as highway=bus_stop only. When creating maps I ignore PTv2 tags entirely, apart from a couple of edgecases.
If someone wants to dual-tag a bus stop pole as a public_transport=platform they’re welcome to do so, even though on bus stops that is at best misleading - other apps will start asking silly questions like “is the [bus stop] wheelchair accessible” to which the truthful answer is “how much it is depends on the bus”.
If a highway=bus_stop is dual tagged with public_transport=stop_position I can’t imagine an edge case in which that is not an error. However, to be fair to mappers the PTv2 wiki is spectacularly confusing so the blame really must lie there. Perhaps a way forward is for everyone to look locally and try and see what has happened in each case - perhaps a changeset comment on more recent examples might help.
Well in the ideal world, where all is PTv2, we do no longer need highway=bus_stop. But we should consider setting bus=yes to public_transport=platform, just to make clear that buses stop here.
I live/map in a completely PTv2-based area. So we could get rid of highway=bus_stop.
But, if you want this bus icon on the Carto map, you simply have to use highway=bus_stop (somewhere). So, mappers being rather pragmatic than dogmatic: there is also highway=bus_stop in my area.
Some mappers used to add highway=bus_stop node on the road, some mappers used highway=bus_stop node by the road, and noone really knew who has it better
Then the public_transport=stop_position/platform got invented, to make consuming the data possible and consistent now while we maybe come to an agreement later
Then we finally agreed that the highway=bus_stop node by the road is actually preferred
I hope this explains why there is so much “wrong” tagging in Europe despite the OSMWiki being bold and explicit on the current definitions
public_transport=stop_positiononly applies to nodes and that node must be on the highway=* way over which the route travels.
highway=bus_stoponly applies to nodes and must not be on the highway=* way over which the route travels.
public_transport=platform applies to both nodes and ways, and must not be on the highway=* way over which the route travels.
Thus,
Ifpublic_transport=platform is mapped as a node (ideally, at the location of the bus stop’s pole) then add the highway=bus_stop tag to that node.
Ifpublic_transport=platform is mapped as an area, then add the highway=bus_stop tag to a new node at the location of the bus stop’s pole.
A note on bus=yes:
bus=yes (in this context of public transport mapping) only applies to public_transport=stop_position nodes (implies: must not be added to the highway=bus_stop node or public_transport=platform node or area)
Optionally, to tie everything together, I create a public_transport=stop_area relation with each of the stop’s associated features (if present) as members, in this order:
public_transport=stop_position node, with role stop
public_transport=platform node or area, with role platform
Ifpublic_transport=platform is an area (and thus highway=bus_stop is mapped as a separate node): highway=bus_stop node, with role ?
amenity=shelter+shelter_type=public_transport node or area, with role shelter
amenity=bench node, with role bench
amenity=waste_basket node, with role waste_basket
(Congratulations, you have now reached the bottom of the iceberg!)
How do you record the name if the name written on the bus stop does not match the name displayed on the bus when it stops, which in turn does not match the name announced on the bus when it stops? That example also has a couple more name variations in the council data and something using the government data feed. I have yet to check that whether there is a button to press at the stop for an announcement there; the name on that might be different again…
That thread reminds me of something I hinted at but didn’t spell out above: it’s not just that documentation for public transport tagging is confusing - it’s the fact that the guidance can change completely depending on when you happen to look at it. I know that can happen with the wiki generally. But public transport seems more prone than most aspects of OSM tagging to unpublicised changes that contradict previous versions.
As far as I remember, when I first mapped bus stops, the wiki gave a much stronger impression than it does now that PTv2 was in the process of replacing previous tagging schemes, and that tags such as highway=bus_stop were obsolete and likely to disappear. In fact I removed that tag from several stops as I was updating them for other reasons, only to realise that I had broken the rendering (and not only in Carto by any means).
In that context, it made sense to add bus=yes to both stop positions and “platforms”. In fact that is what the wiki specified until some time in 2019, and I think editor presets were influenced by that. So I have continued to add all 3 tags.
Perhaps the specific bus=yes tag is a bit off topic from the original post, but I think it illustrates the difficulty for mappers in understanding the consensus for something as apparently simple as mapping a standard roadside bus stop.
It seems the wiki now leans more towards accepting highway=bus_stop as part of current tagging rather than something tolerated for backwards compatibility - but without resolving the original confusion about where to place it, or the lack of support for tagging it on a way.
That’s not what I am seeing: 86% tagged with platform (by the road) and only 4% with stop position (on the road).
Of course its possible that some of those public_transport tags are themselves misplaced, but I think that is relatively rare and wouldn’t change the fact that a large majority of highway=bus_stop globally are beside rather than on the road.
A question about “at the location of the bus stop’s pole”. My understanding is that the node should be where you get on the bus. Example of a recently built bus stop in Flanders (via Google):
In this case, there’s tactile paving (in black rubber) that the bus driver should align the front door to, so I put the node there - not near the pole, especially since it’s in the grass where you don’t want to be standing anyway.
Agreed - in your region, I would suggest placing the node as you suggest. Here in Seattle, busses typically stop with the front door entrance at the location of the pole.
Maybe it is clearly defined, but it is terribly defined
asking to add =platform also in places where no platform whatsoever exists
asking to waste human time on adding utterly unnecessary stop_position to save on automatic processing time (while tagging scheme should value mapper time higher than CPU time)
Personally I map highway=bus_stop and utterly ignore ptv2 fail.