Proposed features/highway=junction

From OpenStreetMap Wiki
Jump to: navigation, search
Junction area
Status: Proposed (under way)
Proposed by: Imagic
Tagging: highway=junction
Applies to: Area
Definition: Specify the extent of a junction
Rendered as: Some renderers may show the extent of the junction at higher zoom levels
Drafted on: 2012-04-16
Disclaimer: Before you start throwing things at me, please read the following: I do not propose to tag any road as area.

I propose the new value junction for the established key highway=*, which should be used to specify the extent of a (larger) junction.

Rationale

Currently there exists no accepted way to specify the extent of a junction. It is not possible to know if two or more intersections of ways belong to the same junction or not. The same is true e.g. for traffic lights. The proposed tag highway=junction should be used on larger junctions on an area covering the whole junction. This will provide information about what features belong to one, individual junction. Applications could now interpret data within this area differently:

  • Renderers could display the junction as a single, closed area, which should be closer to reality.
  • Renderers could display e.g. traffic lights or similar at lower zoom level, but only one for each junction.
  • Routers could give more precise instructions, especially on complex junctions
  • In the future tags could be applied to the whole junction.


Additionally it should be possible to dramatically reduce the number of turning restriction relations on junctions, if we allow intersections of ways within the junction area without connecting nodes. This would not break any existing routing algorithm.

In short:

  • Better visual representation of a junction
  • A lot less turning restrictions
  • Simply draw the ways through the junction as they are
  • Exact definition of what belongs to a junction and what not
  • Fully compatible with existing applications
  • One drawback: editors, which are not aware of this feature might display a warning

Mapping

To map a junction, follow these steps:

  • Draw each way exactly as you could follow it.
  • If two ways intersect create a connecting node, if and only if you actually could change from one way to the other.
  • Add turning restrictions for connecting nodes, where necessary.
  • Create an area and completely cover the junction with it. Add the tag highway=junction to it. The area should also cover those nodes, where the ways of the junction are split up for the different driving directions.
  • If the ways of the junction have a layer=* key specified, use the same layer for the area. If more than one layer is used - for example because of bridges or tunnels - split the area and set the layer tag accordingly.

Example

Rautenweg north from Vienna

A not-too-complex junction north from Vienna:

Current tagging Tagging with junction-area
Rautenweg Current.jpeg Rautenweg New.jpeg
  • More than ten turning restrictions
  • Impossible to determine which traffic lights/crossings belong to the same junction
  • Two turning restrictions
  • Extent of whole junction is defined
  • Four additional ways
  • One additional area tagged with highway=junction

Background imagery is (C) Bing.

Changes to editors

Usually an editor will warn if two ways (on the same layer) intersect each other without connecting node. Within a junction area (with the same layer), this warning should be omitted.

Common questions

What changes are necessary to existing applications

Really necessary: none. You can use any editor and start mapping right now and applications like routers and renderers will still work. But editors, which are not updated will display warning messages and tools like keepright will display errors.

Why not use a relation

Because it is much harder to keep updated and much less visible in editors.

Comments

Please use the Discussion page for any comments.

See also