This is actually why I don’t consider oneway=yes (or lane counts as someone mentioned below) to be redundant at all regardless of the shape of the junction. See also why foot=* and bicycle=* should always be tagged on highway=motorway in North America: There’s no reasonable assumption what’s actually there because the opposite of expectation is more common than you expect (bicycles and pedestrians being allowed on the freeway is the default in most states and provinces but significant exceptions exist in major metropolitan areas, and in places where the thought of a quality, secular public education being a given for everyone doesn’t make the worst locals make angry mayonnaise noises, these are explicitly signed when bikes or pedestrians are prohibited for obvious safety and quality of life reasons).
and it is quite sad they were not stopped, now we need to live with pointless and harmful and confusing implied oneway
I don’t see any problem.
in OSM, junction=roundabout means it’s oneway. If it’s not oneway, it’s not a junction=roundabout.
junction=roundabout with oneway=no is an error, to be solved by mappers.
junction=roundabout with oneway=yes is redundant. Leave it or remove it, it makes no difference.
This means mappers do not need to add oneway=no to junction=roundabout, and data users can assume that a junction=roundabout is oneway, and ignore the oneway=* tag if present. If the actual situation is twoway traffic on a circular road, tagging junction=roundabout is an error, and that’s not to be solved by data users.
Popular voice may call two-way round junctions roundabouts, and in Nederland some roundabouts are called different by the authorities. All that may explain errors, but it makes no difference for OSM mapping: signed on the road as a roundabout, priority and oneway traffic on the roundabout, then tag junction=roundabout.
yet another not needed special case is the problem, in my opinion
and it is exactly that “pointless and harmful and confusing” part
och, and it is a special case not only for data consumers but also for mappers
The main practical problem with relying on junction=roundabout implying oneway=yes is that this is error-prone when for some reason a mapper removes junction=roundabout from some piece of road or replaces it with junction=circular (e.g. because priority changed), and then that road piece accidentally becomes bidirectional in some or all data consumers.
A mapper who knows that junction=roundabout should become a junction=circular when priority changes, probably also knows that the oneway tag should be added if applicable. Starting mappers are more likely to change junction=circular to junction=roundabout.
Data users would probably consider junction=circular as oneway unless oneway=no is added.
As the wiki says: “Generally, rotaries and circular junctions have one-way traffic…”.
junction roundabout is not (only) about the shape of the junction but mostly about the right of way.
I have the case here:
A guy changed the junction without updating the priority information, and said, not my business.
I have a connected question about roundabouts with a public transport shunting the roundabout:
Here we do have the legal “roundabout” signs FR:AB25
.
Should it be tagged as:
- roundabout, with specific information (give way) where the roundabout reach a busway? However there exists exceptions in some roundabouts in some cases where there’s a special service way passing through the island, reserved to buses/tramways/emergency vehicles (which will have priority to the normal traffic, and for which there may be traffic signs requiring vehicles on the ring to give the way; in normal times these give-ways and traffic signals are off). Here the exception is permanent.
- circular, because according to the English wiki (not the French wiki) all what is circular but not a roundabout is a circular. But if the definition is just the shape, does-it make sense to have this in the database, we have the geometry elsewhere, haven’t we? Note: I thought circular=roundabout, the opposite default priorities so oneway=yes, etc…
- ordinary ways as a shunt exists to go through the circular shape.
- roundabout
- circular
- ways
Renderers like OSM Carto, OpenMapTiles, and Shortbread know nothing about junction=circular, so they only show one-way arrows if oneway=yes is present. Conversely, routers like GraphHopper, OSRM, and Valhalla all equate junction=circular with junction=roundabout. In other words, they assume it’s a one-way unless oneway=no is present.
Why the discrepancy between renderers and routers? My guess is that the stakes are higher for routers. Users really don’t want to be told to make two lefts when they actually need to make two rights. If the circular intersection is really two-way but the router tells them to go the long way around, it’s slightly annoying but not a real problem. Meanwhile these features tend to be more compact than the average one-way street, so the absence of one-way arrows on the rendered map doesn’t cause as much surprise and few would notice.
As far as a standard router is concerned, the difference between roundabout and circular is purely about guidance instructions: the user would be told to “take the nth exit” at a roundabout but something more verbose at a circular intersection. Otherwise, there’s no routing difference between a roundabout and a circular, especially if intersection control devices like highway=stop/give_way/traffic_signals are already properly mapped at each entrance. A driving simulator might want to distinguish a roundabout from another circular intersection based on the difference in priority rules, but this is too much detail for an actual driver or cyclist.
I would except exactly the same “take the Nth exit” (N being take counted the same way around, clockwise or anticlockwise depending we people drive right or left not wrong ;-)).
That is a problem though. If there is no uniform understanding, interpretation of the data is not going to universally yield the expected result.
The wiki says different things in different languages. And the discussion on the wiki for the English language looks like two random people met and agreed to something and then changed the wiki. On a scale together with “authoritative”, this is on the other end. This is not a way to build a sound data model.
openrouteservice for example does not know about junction=circular being oneway in absence of oneway tags and sends users the wrong way. This is actually pretty dangerous. There should not be ambiguity in interpreting the data.
When in doubt, be more specific. I personally don’t buy into the argument that we lose anything with oneway=yes on junction=roundabout. I also don’t think it’s reasonable for a consumer trying to determine “is this thing one way?” to assume “yes” anywhere oneway=yes is not tagged, and I wouldn’t be surprised if a nontrivial number of data consumers aren’t looking in at least three different keys to make a call on this.
You could open a ticket with openrouteservice? Usually, junction=circular is oneway just like a roundabout. I think routers should default to the safe side.