User:De muur/lane mapping draft

From OpenStreetMap Wiki
Jump to navigation Jump to search

This approach aims to separate lane definitions, lane properties, and routing properties.


Purpose

  • Allow display of lanes and other parts of a road on maps, navigation devices, VR applications, etc.
  • Allow lanewise routing.
  • Allow routing not only for motor vehicles, but for cyclists, pedestrians, and others too.
  • Avoid relations.


Non-Purpose

  • Area mapping based on highres arial images.


Syntax

lane definition

Mapping of all traffic lanes in a list. Lanes are ordered from left to right, looking in way direction.


lanes = <lane_value> ["|" <lane_value> ...]

<lane_value> = through_lane | turn_lane | acceleration_lane | deceleration_lane | emergency_lane | parking_lane | bus_lane | bicycle_lane | cycleway | footway | any user defined value


per-lane writing

Lane 1 is the most left lane.


lanes:<lane_nr>= <lane_value>


lane properties

The properties of the single lanes can be set in the same way as properties are set for the complete way.

e.g.:

lanes:surface=...

or

lanes:1:maxspeed=...


lane separation

lanes:1:separation is the separation on the right side of lane 1 (between lane 1 and lane 2). If the separations are mapped as a list, only the separations between the lanes are mapped (so number of seperations equals number of lanes - 1). Additional separations outside of the lanes can be mapped as single objects (e.g. lanes:0:separation is left from the most left lane).

Multiple separations between two lanes are combined in a list, ordered from left to right if applicable.


lanes:separation = <separation_list> ["|" <separation_list> ...]

<separation_list> = <separation_value> [";" <separation_value> ...]

<separation_value> = none | dashed_line | continuous_line | yellow_line | curbs | guard_rails | strip | any user defined value


Additional properties of the separations can be set in the same way, as the additional properties can be set for the lanes.

e.g.:

lanes:1:separation:surface=...


lane direction

lanes:direction = <direction_value> ["|" <direction_value> ...]

<direction_value> = forward | backward | both


lane connection

lanes:connection defined the connections of single lanes to adjacent ways at the forward end of the way.

lanes:connection:backward defined the connections of single lanes to adjacent ways at the backward end of the way.


lanes:connection = <connection_list> ["|" <connection_list> ...]

<connection_list> = <connection_value> [";" <connection_value> ...]

<connection_value> = <direction_value> [":" <lane_nr>] [":" <connection_description>]

<direction_value> = straight | left | right | u_turn | slight_left | slight_right | sharp_left | sharp_right | any user defined value

<connection_description> = traffic_lights | zebra_crossing | any user defined value


The connection description defines the properties in the direction of the lane connection, i.e. a zebra_crossing describes the connection of the footway and not the connection of the crossed driving lane.

Examples

Elsewhere.