Public transport agencies
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.
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 |
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:
- url:gtfs=*: Where can a GTFS feed for this line be downloaded?
- gtfs:stops:id=stop_id;ref:De_Lijn: Which field in the gtfs stops.txt corresponds to which OSM tag?
- gtfs:route:id=route_id;ref:De_Lijn: Which field in the gtfs routes.txt corresponds to which OSM tag in our route_master relations?
- 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_translation_table=subway:métro;tram:tranvía: For {Mot} and {mot} to be able to work, a conversion table needs to be specified
- 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.