User:Marl/route update thoughts

From OpenStreetMap Wiki
Jump to: navigation, search

Note: Everything on this page is about sorting my thoughts, to prepare something to propose. It is not a proposal - yet.

Route Update
Status: Draft (under way)
Proposed by: marl
Tagging: element_order=none/ordered, oneway=yes/no, route_entry=everywhere/designated/entry_exit/stop, route_exit=everywhere/designated/entry_exit/stop=<value>
Applies to: route Relation
Definition: Introducing a consistent mapping of route variants (different starting or destination points, shortcuts, etc.), recommended stops, route highlights and a scheme for adding route relation members.
Rendered as: Identical to the existing route appearance
Draft start: 2011-xx-xx
RFC start:
Vote start:
Vote end:

Contents

Proposal

Update the existing route feature, adding four tags and an extensible relation membership role naming scheme, initially covering full support for self-documenting route variants, route entry and exit points, via points, highlights and secondly integrating the various needs of different route types and route majority levels inside the OSM database into one concept.

Rationale

Shortcomings of the existing route specification and extensions

The current route feature has some major shortcomings that this proposal is aimed to fix:

Solutions Provided by this Proposal

This proposal is a simple and consistent approach to overcome the shortcomings described above:

Integration with Existing Content

The proposal integrates well with the existing OSM database content

Concept

Variants

a description here how variants are created by adding members with an only_sh_..., only_de_, only_al_, etc., how the routes are added that are used otherwise are added (no_...), how via points and highlights can be integrated and how this makes it easy for software, users and mappers.

Filters

Generalising the variant "filters" to the abstract filter concept

Predefined dimensions

Outlining the idea of other filters (time, weather, direction, route levels)


Definitions

Term Explanation
Self-Intersecting Route A route with at least one junction point where the user or software cannot know which way to go, based on the following criteria:
  • oneway-tag of one or more of the possible ways (except on foot/hiking routes)
  • forward/backward-tag of one or more of the possible ways

Fully mapped self-Intersecting routes need their elements to be ordered the element_order tag to be set accordingly.


Tags

(Only new tags (additional to the existing route page) are mentioned here)

Key Values Defaults Explanation
oneway yes/no no the same as for highways - the default is always no, because only very well-mapped public transport routes have separate route relations per direction
element_order none/ordered none For most routes, no element order is needed. Ordering is needed where a route is self-intersecting. In these cases, the user or software cannot derive which way the route exactly is.
route_entry everywhere/designated/entry_exit/stop
  • public transport, ferry: stop
  • ski: desigated
  • other: everywhere
Entry into the route is allowed:
  • everywhere: any point where the underlying way (not the route) can be entered legally
  • designated: at "entry" locations only
  • entry_exit: at all points marked "entry" or "exit"
  • stop: at all points marked "stop"

Some routes (in particular touristic routes) do stop at positions (often highlights) where it is not possible to enter the route.

route_exit everywhere/designated/entry_exit/stop
  • public transport, ferry: stop
  • ski: desigated
  • other: everywhere
Leaving the route is allowed:
  • everywhere: any point where the underlying way (not the route) can be left legally
  • designated: at "exit" locations only
  • entry_exit: at all points marked "entry" or "exit"
  • stop: at all points marked "stop"

Some routes (in particular touristic routes) do stop at positions (often highlights) where it is not possible to leave the route.

Members

(This is thought to be a replacement for the existing section)

Basic Roles

Way or Node Basic Role Recurrence? Discussion
Way (blank)/route zero or more the ways making up the route.
Way link zero or more Link roads (highway=*_link) from and to the route. See highway=motorway_link!
Node stop zero or more A point on the route where a planned stop is needed or recommended for reasons due to the route. This can be anything from a recommended break, up to a public transport stop_position.
Node stop:<number> zero or more A Bus stop or train halt, on the route. The number starts with 0. This is not needed to preserve order of stops in API v0.6, just use role=stop and change the order of the stops in the relation. Deprecated.
Node forward/backward:stop:<number> zero or more A Bus stop or train halt, on the route, which is only be used in one direction. The direction is related to the direction of the way, nothing to do with towards/away from any bus station or terminus. This is not needed to preserve order of stops in API v0.6, just use role=forward/backward_stop and change the order of the stops in the relation. Deprecated.
Node forward/backward:stop zero or more A Bus stop or train halt, on the route, which is only be used in one direction. The direction is related to the direction of the way, nothing to do with towards/away from any bus station or terminus. Deprecated.

... to be continued

Role Suffixes

Basic Role Role Suffix Recurrence per role membership Discussion
(blank)/route forward/backward zero or more If a route should only be followed in one direction for some or all of its length and traffic AND the assumed vehicle is allowed to go both directions on the same way, the "role" can indicate this for some or all of the constituent ways. "forward" means the route follows this way only in the direction of the way and "backward" means the route runs only against the direction of the way. (Makes sense only if element_order=none.)
(blank)/route north/south/east/west zero or more in North America road are signed with their orientation, as a replacement for forward/backward
(all) with_... zero or more "with" filter operator
(all) only_... zero or more "only" filter operator
(all) no_... zero or more "no" filter operator

... to be continued

Route type independent filter dimensions

use filters

need to find a better name for this

Use filters select parts of a route where the route user can do things. They do not form route variants. The dimension name is "use".

Value Explanation
entry The point can be used as an entry point into the route
exit The point can be used as an exit point out of the route

Examples:

Base Role Operator Dimension Value Full Role Explanation
stop only use exit stop_only_use_exit the stop is for exit only (in a route that otherwise can be left at every stop, as it is default for bus routes
stop with use exit stop_with_use_exit the stop is for exit(in a route that can be entered or left at dedicated places only)
stop with use exit, entry stop_with_use_entry_with_use_exit the stop is for both entry and exit(in a route that can be entered or left at dedicated places only)

time filters

weather filters

direction filters

Direction filters are used to generate direction variants from a route. The dimension name is "direction" or "dir".

Value Explanation (The element is used only if the route is [not] followed ...)
forward, fo ... according to the order of way memberships
reverse, re ... according to the reverse order of way memberships
forward, fo ... towards the route's "to" tag
backward, ba ... towards the route's "from" tag
clockwise, cl ... clockwise (for circular routes)
clockwise, co ... counter-clockwise (for circular routes)
north, no ... northwards
east, ea ... eastwards
south, so ... southwards
west, no ... westwards

Examples:

Base Role Operator Dimension Value Full Role Explanation
(empty) only dir forward only_dir_forward the way is used only on the trip along the order of way memberships
(empty) only dir backward only_dir_backward the way is used only on the trip along the reverse order of way memberships
stop only dir forward stop_only_dir_forward the stop is for valid on the trip along the order of way memberships

route level filters

need a better name for these

Rendering

What renderers and other software can do

Software can use OSM data to display route variants without knowing about the dimensions used. The program just has to load the route relation, to expand all segments and to list the filter dimensions found. Entry, exit, via points and highligts can be displayed as a characterisation of the alternative. For selecting an individual variant, the user can choose one from every available dimension, except from the "option", "detour" and "shortcut" dimensions, from which he can select any number.

Only the "direction" dimension needs some special handling, because the "forward" direction (the only option in the current public transport proposal) and the "backward" direction do not mean anything to a user looking at a rendered map. In these cases, the route's entry and exit points and (if no entry or exit points are available) the "from" and "to" tags must be used.

Features/Pages affected

Comments

Nothing here yet

Personal tools
Namespaces
Variants
Actions
site
Toolbox