Contents

Rationale

Where streets with dual carriageways cross, there are at least 4 intersection nodes. If there are additional footways, cycleways etc., things are getting complex and some problems arise:

If you map only 1 highway=traffic_signals, most of the road combinations appear as uncontrolled to routers. They calculate the duration of the journey too short. If you map traffic signals on every intersection node, they look crowded in the map, and routers calculate the duration too long.

Routers possibly say "turn second left/right" where it's actually the first junction.

With many intersection nodes, a myriad of turn restrictions is needed.

While mappers tend to get lost with micro mapping these days, this proposal aims to resolve these issues by basically viewing a junction as a whole, like a human does. We are going to use a base relation to define the junction itself, and some optional additional relations to define the routes over that junction.

How to map

Create a node on every intersection point where it is allowed to change from one way to the other. Every way leading into the junction needs at least one node on the junction.

Create a relation with all of those nodes as members. Role names are not needed.

Tags

Key

Value

obligatory

Explanation

type

intersection

yes

signals

yes/no/manual/

no

type of traffic signals, default is no

Restrictions

Relation type=restriction may be extended to permit an intersection relation as the member with the "via" role.

However, this proposal suggests a new relation type specifically for junctions with an intersection relation:

Tags

Key

Value

obligatory

Explanation

type

intersection_route

yes

number_waits

<number>

no

cumulated number of traffic-signals and give-way's to leave the junction

avg_waiting_time

<number>

no

avarage number of seconds to wait

for

foot/vehicle/bicycle etc.

no

see key names in access=*, with the exception off "access" itself (this is not needed, because default is for all)

If an affected way (from* or to*) has more than one end node outside the junction, split that way on at least 1 intersection node.

Multiple intersection routes may exist for a given from* and for, but if at least one is defined, all undefined routes are considered forbidden. If no intersection route is defined for a given from* and for, all possible routes are considered allowed (given that oneway=*, access=* etc. permit it).

Rendering

If signals=* is set to a value other than "no" or "none", place a usual traffic lights symbol in the center of the junction.