Proposal:Map public transport itineraries using superroute relations

From OpenStreetMap Wiki
Jump to navigation Jump to search
map public transport using superroute relations
Proposal status: Inactive (inactive)
Proposed by: Polyglot
Tagging: type=superroute
Statistics:

Draft started: 2020-10-16

Proposal

Instead of mapping itineraries as route relations containing the whole string of ways, it would be more efficient to use superroute relations that contain route relations with the ways for each section.

Rationale

Our highways and railways are members in many route relations. If one of these route relations 'breaks' usually all the others for that same section are 'broken' as well. If public transport gets rerouted, there is a lot of work involved to change all these route relations.

We could do better by adding a level of indirection. Shorter route relations that contain the ways for section that is shared by all vehicles of a line that travel in the same direction. Then these route relations can be assembled using a superroute relation to describe the full itinerary of a variation of a line.

Examples

For most ways that are not oneway, this will mean they become a member of 2 route relations, which in turn can be members in many superroute relations.

If a way splits and joins again a bit further, there will still be only 2 route relations for those bundles.

  •     A      _____B_____       C
  • --------< ___________ >----------
  •                       D

In right hand traffic, there is a route relation that goes from right to left containing ways CBA. And another route relation going from left to right containing ADC.

I created code in JOSM to help with the conversion and gave this a lot of thought over the past few weeks. With good tools to manage this, it will actually become easier to work with public transport relations and maintain them. This has been on my mind for a good number of years now. I have no idea how it will be received. I do realise it may be very difficult to overcome

  • ___A____b_____C_____
  • ___D____|_____E_____
  •                 |
  •                 |F
  •                 |
  •                 |G
  • b is the very short connection between C and F (on a crossing)
  • There are no buses going straight from C to A (because the bus station is south of G). No buses from D to E either, but what I wanted to show is that b is in 2 sub route relations and does not become an independent segment on its own.

Then we have these segments:

  • Cb
  • bA
  • D
  • E
  • FG
  • GF

Tagging

The route_master relations that describe the lines

contain

superroute relations for each variation in itinerary

which in turn contain

  • the stops in the correct order
  • a sequence of route relations for each segment (string of ways) for vehicles traveling in the same direction

The tagging of the route_master relations doesn't change.

The superroute relations get the following tags:

type route name ref colour operator network

(public_transport:version=2 is not necessary anymore)

The route relations get the following tags:

type route note route_ref

(public_transport:version=2 is not necessary anymore here either)


Applies to

Public transport

Rendering

If a renderer shows only the (sub) route relations, it will still be visible where the vehicles pass. If a renderer wants to show the line numbers, they will either have to show the contents of route_ref, or they would have to look at the parent superroute relation's ref tags.

Features/Pages affected

External discussions

Comments

Please comment on the discussion page.