Public transport agencies

From OpenStreetMap Wiki
Jump to navigation Jump to search

Rationale

We have nodes for stops (sometimes platform ways or stop_area relations), route relations for the itineraries and route_master relations to describe the public transport lines. What we don't have is a way to describe an agency, what counts as holidays or other factors that influence the schedule? Where can a GTFS feed be found? How do the fields in those files/tables correspond to OSM tags? Do we have some rules for standardising the names of the route and route_master relations?

Proposal

This proposes adding one new relation to OSM:

Agency description

In many places the scheduling changes depending on public holidays and whether it's school are in vacation period or not. So we'll need the ability to know whether a date on the calendar is a normal day, a weekday during school holidays or a holiday where the Sunday schedule applies.

This applies to all lines in a given network or from a given operator. This relation is added as a member with role agency to all route_master relations it applies to.

Tags to add to a public_transport=agency relation
Tag Description Example
type=public_transport type=public_transport
public_transport=agency Public holidays that affect an operator's or a network's schedules public_transport=agency
operator=* Operator operator=Veolia
network=* Network network=Zuid-Holland
name=* Name name=Holidays and off school days in Flanders
sunday_schedule=* Days on which Sunday schedule comes into vigor sunday_schedule=01-01;05-01;12-25;2018-04-01
school_holidays=* Weekdays that fall into school holiday periods school_holidays=2018-12-24;2018-12-26;2018-12-27;2018-12-28;2018-12-31;2019-01-02;2019-01-03;2019-01-04
route_name_format=* string which indicates how to substitute information from other tags to construct the route relation name route_name_format=[[Tag:route_name_format={Mot}[ {ref}]:[ {from}][ → {via}][ → {to}]|{Mot}[ {ref}]:[ {from}][ → {via}][ → {to}]]]
route_master_name_format=* string which indicates how to substitute information from other tags to construct the route_master relation name route_master_name_format=[[Tag:route_master_name_format={operator}[ {ref}]|{operator}[ {ref}]]]
mot_translation_table=* string which indicates how to substitute information from other tags to construct route relation name mot_translation_table=[[Tag:mot_translation_table=subway:métro;tram:tranvía|subway:métro;tram:tranvía]]
details_to_drop=* string(s) to drop from from/via/to tags when adding them to name, like Perron 1 or Perpignan details_to_drop=[[Tag:details_to_drop=Perron #;Perpignan|Perron #;Perpignan]]

[[Key:|]]=subway:métro;tram:tranvía

Members of a public_transport=timetable relation.
Role What object?
region Possibly a boundary relation indicating the general area where this applies. Some buses go over borders, no need to go into full detail here.

This proposal adds several new keys:

  • network=*: If network contains a comma delimited set of values, the network is higher in the hierarchy than the operators, i.e. A network is served by multiple operators
  • operator=*: If operator contains a comma delimited set of values, the operator is higher in the hierarchy than the networks, i.e. there is a single operator, that divided its network in sub networks.
  • sunday_schedule=*: Which are the holidays on which the Sunday schedule applies?
  • school_holidays=*: Which are the weekdays on which a more limited schedule applies?
  • route_name_format=*: To enable validation of the names of route relations, this string contains a template, detailing how to compose the name of the route relation based on values in from, to, via, ref and route tags.
    • {Mot} and {mot} are special values that are based on the value in route, but translated to the local language, for example route=subway becomes Métro when {Mot} is used and métro when {mot} is used.
  • route_master_name_format=*: To enable validation of the names of route_master relations, this string can contain a template, detailing how to compose the name of the route_master relation based on values in ref and route tags.

Examples

Comments

Discussion

Please use the talk page.