Proposed features/intersection

From OpenStreetMap Wiki
Jump to navigation Jump to search
intersection relation
Proposal status: Draft (under way)
Proposed by: fkv
Tagging: type=intersection
Applies to: relation
Definition: define which nodes belong to an intersection, and how to route over them

Rendered as: traffic lights symbol or hidden
Drafted on: 2011-05-10
RFC start: *
Vote start: *
Vote end: *


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:

  1. 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.
  2. Routers possibly say "turn second left/right" where it's actually the first junction.
  3. 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.


Key Value obligatory Explanation
type intersection yes
signals yes/no/manual/ no type of traffic signals, default is no


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:


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)


Way or Node Role Recurrence? Discussion
way from / from_left / from_right one or more starting way; _left and _right are indended for sidewalks (pedestrian routing) and bicycle lanes (bicycle routing)
way to / to_left / to_right one or more same as above, but for target way
relation intersection one the intersection relation
node or way via zero or more may be needed to route blind pedestrians; to be discussed

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).


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


Not yet.