[OSM-talk] Roundabouts - why is a separate segment required?

Maarten Deen mdeen at xs4all.nl
Thu Feb 15 10:05:02 UTC 2018

On 2018-02-14 19:39, Dave F wrote:
> On 14/02/2018 18:23, Johan C wrote:
>> No, they are not. Roundabouts are special types of intersections.
>  Which is another type of intersection.
>> They have a way on which you can drive round. And round. And round.
>> And they have other ways leading to and from this round way.
>> Whenever you enter the roundabout you drive on this round way, even
>> if it's just for a metre. And then you exit this round way on to a
>> different way.
>> The present tagging (used since 2005 or so, and all around the
>> globe) is fine.
> To repeat myself. You can determine if you need to "drive on this
> round way" from a single node. No need for a section between entrance

You can not determine that from a single node. You need to load the 
whole way that connects to that node and than make a judgement call 
which roads connected to that node you will traverse (which you don't 
know, because from a topology standpoint you are not traversing that 

It is like Matej's example.
Suppose it is mapped with the entry and exit road connected to one node. 
Yes, you can see if there also connects a roundabout to that node and 
you can make the determination that in that case you need to traverse 
the roundabout in the correct direction.
But suppose there is not a roundabout connected but a (circular) way 
with a oneway direction. Then you also need to make the decision that 
you have to traverse that way.
But suppose the way is not circular (making you cross or touch a oneway 
street), than you can not do that.
When is a road circular? Most roads are circular from a topology 
standpoint, as in: you can reach a node on that way going in either 
direction. So you can not determine from a topology standpoint if a road 
is a circular road or a roundabout.

Your method of mapping makes for very elaborate edge cases and unwieldy 
routing engines.


More information about the talk mailing list