User:Nakaner/Public Transport Thoughts
This page contains my thoughts about a third version of public transport mapping, called PTv3 at the following paragraphs. Do not use to map!
To Do
Following Topics have not been defined yet.
- connection between waiting areas and platforms (a relation)
- waiting rooms at stations (for passengers who wait a longer time)
- marking platforms as exit-only and entry-only platforms (Spanish Solution)
- stops where passengers can neither enter nor exit (e.g. switch of locomotive, waiting inside stations at one-tracked railway lines)
Stop
Stop position
The stop position is the place where the vehicle usually stops on the rails or on the street.
A public_transport=stop_position is tagged as a on the way, even when a bus stops in a bus bay.
Stop positions must be mapped
- on train and tram tracks
- stops where multiple busses can stop behind each other
Stop positions do not have to be mapped
- on simple bus stops along a road where the bus stops at the stop sign pole/platform and where it is clear where the bus stops
The stop position is tagged with the following attributes:
Key | Value | Comment | Recommendation |
---|---|---|---|
public_transport | stop_position | Defines this point as a stop position of the vehicle. Stop positions refer to the center of the shortest used vehicle at this public transport route. | mandatory |
varying | yes / <length in metres> / no | yes if the stop position of the vehicle changes within a day and is not defined by a schedule (i.e. if there are two stop positions behind each other and the vehicle stops at the first position if it is alone and at the second if the first position is already used by another vehicle | mandatory if not no |
train | yes / no | If trains halt at this stop position. | mandatory if yes, else optional |
subway | yes / no | If subways halt at this stop position. | mandatory if yes, else optional |
light_rail | yes / no | If light rail trains halt at this stop position. | mandatory if yes, else optional |
monorail | yes / no | If monorails halt at this stop position. | mandatory if yes, else optional |
tram | yes / no | If trams halt at this stop position. | mandatory if yes, else optional |
bus | yes / no | If buses halt at this stop position. | mandatory if yes, else optional |
trolleybus | yes / no | If trolley-buses halt at this stop position. | mandatory if yes, else optional |
aerialway | yes / no | If aerialways halt at this stop position. | mandatory if yes, else optional |
ferry | yes / no | If ferries halt at this stop position. | mandatory if yes, else optional |
name | Individual name | The name by which the stop position is known. | mandatory |
local_ref | Local Reference Number | The reference by which the stop position is known (usually used at train stations, i.e. 1, 2, 3, 4a, 4b, …) | recommended if there is a reference number |
uic_ref | UIC reference | The UIC reference by which the stop position is known. | optional |
uic_name | UIC name | The UIC name by which the stop position is known. | optional |
operator | Operator | Name of the company that operates the stop position | recommended |
network | Local / regional network | Name of the network the stop position belongs to | recommended if there is a network |
Platform/Stop Sign Pole
The platform is the place where passengers are waiting for the vehicles.
It is mapped as a way or area if it is a real platform. It is mapped as a node at all other occasions. This node should be placed at the sign which marks the stop.
Key | Value | Comment | Recommendation |
---|---|---|---|
public_transport | platform | Defines this way or area as a platform where passengers are waiting for the vehicle. If there is no platform in the real world, one can place a node at the pole. | mandatory |
platform | pole | There is no real platform, just a pole. | only if it is right |
waiting | yes / no | Are passengers allowed to wait for the train/bus/tram/… at the platform or is there an additional waiting area or room. This usually affects small platforms at train stations where passengers wait at the station building until the train stops. | mandatory if yes, else optional |
area | yes / no | If the platform is an area. | recommended if yes, else optional |
name | Individual name | The name of the bus stop/tram stop/station/halt. | rmandatory |
train | yes / no | If trains halt at this stop position. | mandatory if yes, else optional |
subway | yes / no | If subways halt at this stop position. | mandatory if yes, else optional |
light_rail | yes / no | If light rail trains halt at this stop position. | mandatory if yes, else optional |
monorail | yes / no | If monorails halt at this stop position. | mandatory if yes, else optional |
tram | yes / no | If trams halt at this stop position. | mandatory if yes, else optional |
bus | yes / no | If buses halt at this stop position. | mandatory if yes, else optional |
trolleybus | yes / no | If trolley-buses halt at this stop position. | mandatory if yes, else optional |
aerialway | yes / no | If aerialways halt at this stop position. | mandatory if yes, else optional |
ferry | yes / no | If ferries halt at this stop position. | mandatory if yes, else optional |
local_ref | Reference | The reference by which the platform is known. This number usually is only unique at one station (i.e. the same number may occur at other stations, too) | recommended if there is a reference number |
uic_ref | UIC reference | The UIC reference by which the platform is known. | optional |
uic_name | UIC name | The UIC name by which the platform is known. | optional |
route_ref | Route refs | List of routes serving this stop | recommended if no route relations exist, else not recommened |
not_served_by | Not served by | List of (express) services passing by, but not serving this stop | recommended if no route relations exist, else not recommened |
operator | Operator | Name of the company that operates the platform. | recommended |
network | Local / regional network | Name of the network the stop position belongs to | recommended |
shelter | yes / no | If there is a shelter that is not tagged separately with amenity=shelter. | optional |
bench | yes / no | If there is a bench that is not tagged separately with amenity=bench. | optional |
covered | yes / no | For platforms under the surface and covered by a roof (not by shelters). This does not replace a correct layer key. | recommended if yes, but not needed if there is a specific structure (other than a general landuse classification) on a higher layer covering the whole platform. |
Waiting Area
If passengers are not allowed to wait on the platform, a waiting area marks the area where the passengers are allowed to wait.
Key | Value | Comment | Recommendation |
---|---|---|---|
public_transport | waiting_area | Defines this way or area as a platform where passengers are waiting for the vehicle. If there is no platform in the real world, one can place a node at the pole. | mandatory |
area | yes / no | If the platform is an area. | recommended if yes, else optional |
name | Individual name | The name of the bus stop/tram stop/station/halt. | rmandatory |
train | yes / no | If train passengers wait here. | mandatory if yes, else optional |
subway | yes / no | If subways passengers wait here. | mandatory if yes, else optional |
light_rail | yes / no | If light rail passengers wait here. | mandatory if yes, else optional |
monorail | yes / no | If monorails passengers wait here. | mandatory if yes, else optional |
tram | yes / no | If tram passengers wait here. | mandatory if yes, else optional |
bus | yes / no | If bus passengers wait here. | mandatory if yes, else optional |
trolleybus | yes / no | If trolley-bus passengers wait here. | mandatory if yes, else optional |
aerialway | yes / no | If aerialway passengers wait here. | mandatory if yes, else optional |
ferry | yes / no | If ferry passengers wait here. | mandatory if yes, else optional |
operator | Operator | Name of the company that operates the platform. | recommended |
network | Local / regional network | Name of the network the stop position belongs to | recommended |
shelter | yes / no | If there is a shelter that is not tagged separately with amenity=shelter. | optional |
bench | yes / no | If there is a bench that is not tagged separately with amenity=bench. | optional |
covered | yes / no | For platforms under the surface and covered by a roof (not by shelters). This does not replace a correct layer key. | recommended if yes, but not needed if there is a specific structure (other than a general landuse classification) on a higher layer covering the whole platform. |
Stop area
The stop area is a relation that contains all elements of a train/subway/monorail/tram/bus/trolleybus/aerialway/ferry stop.
A public_transport=stop_area is the logical combination of stop position(s), platform(s), center node. A stop area may also be associated with a public_transport=station.
Usually a stop area has one unique UIC reference and one unique name.
If only one node exists (e.g. only one node public_transport=platform representing the pole), it is recommended to forgo the stop area relation.
Key | Value | Comment | Recommendation |
---|---|---|---|
type | public_transport | Defines this relation as a public transport relation. | mandatory |
public_transport | stop_area | Defines this relation as a stop area. | mandatory |
name | Individual name | The name by which the stop is known. | recommended |
name:<qualifier> | Operator's or network's name | The name by which the stop is known by a specific operator or network if not equal to name=* | recommended if the stop is known under different names by different operators or networks |
train | yes / no | If trains halt at this stop position. | mandatory if yes, else optional |
subway | yes / no | If subways halt at this stop position. | mandatory if yes, else optional |
light_rail | yes / no | If light rail trains halt at this stop position. | mandatory if yes, else optional |
monorail | yes / no | If monorails halt at this stop position. | mandatory if yes, else optional |
tram | yes / no | If trams halt at this stop position. | mandatory if yes, else optional |
bus | yes / no | If buses halt at this stop position. | mandatory if yes, else optional |
trolleybus | yes / no | If trolley-buses halt at this stop position. | mandatory if yes, else optional |
aerialway | yes / no | If aerialways halt at this stop position. | mandatory if yes, else optional |
ferry | yes / no | If ferries halt at this stop position. | mandatory if yes, else optional |
ref | Reference | The reference by which the stop is known. | recommended |
ref:<qualifier> | Operator's or network's reference | The reference by which the stop is known by a specific operator or network. | recommended if the stop is known under different references by different operators or networks |
uic_ref | UIC reference | The UIC reference by which the stop is known. | recommended if available |
uic_name | UIC name | The UIC name by which the stop is known. | recommended if available |
operator | Operator | Name of the company that operates the stop. | recommended if available |
network | Local / regional network | Name of the network the stop belongs to. | recommended if available |
Members of this relation are:
Role | Refers to | Comment | Recommendation |
---|---|---|---|
stop | public_transport=stop_position | position(s), where the vehicle stops | recommended if available |
platform | public_transport=platform | the platform(s) | recommended if available |
waiting | public_transport=waiting_area | the waiting area(s) | recommended if existing |
none | public_transport=station | the station building/area/node | recommended if it belongs to the stop area |
Route
A route/service is represented by vehicles that always run the same way with the same reference number.
Route direction/variant
Each direction or variant of a route is represented by a separate relation.
Each direction of a route should be tagged as a separate . If a route has several variants (e.g. different way at weekend), these variants should also be in separate relations.
The roles alternate
, forward
and backward
should not be used any more.
Each direction/variant relation contains all available stop_positions, platforms and ways.
Each stop is included with two elements (if available): first the stop_position tagged with role stop
and immediately followed by the corresponding platform tagged with role platform
. The stops (stop_positions and platforms) should be inserted beginning with the initial stop_position/platform and ending with the terminal stop_position/platform. The ordering of the stop positions in the relation will determine the direction of the route.
If a stop is only for exiting or entering the vehicle (common for nightly services) the roles stop
and platform
should be replaced with stop_exit_only
or stop_entry_only
and platform_exit_only
or platform_entry_only
. This is not necessary for the first and last stop of a route.
Inserting the stop_position is important to know where the vehicle stops. Inserting the platforms is needed for correct pedestrian routing.
If a stop does not have a stop position mapped (e.g. simple bus stops along a road), you have to use platform_single
for the platform. If a platform is splitted into multiple ways/areas (because it is partially located on a bridge or has different surfaces, or because there are platforms on the left and on the right), the second, third etc. platform piece has be tagged platform_additional
. Otherwise data users might recognize these platforms as additionals stops of the route without a stop position.
After all the stops all the used ways should be inserted into the relation with an empty role. The ways should be inserted beginning with the way at the initial stop position and ending with the way at the terminal stop position.
Key | Value | Comment | Recommendation |
---|---|---|---|
type | public_transport | Defines the relation as route. | mandatory |
route | train / light_rail / subway / monorail / tram / bus / trolleybus / aerialway / ferry | Defines the route as train, light rail, subway, monorail, tram, bus, trolleybus, aerialway or ferry route. | mandatory |
from | Initial stop | Initial stop where the variant starts. | recommended |
to | Terminal stop | Terminal stop where the variant ends. | recommended |
via | Important via stop(s) | If there are several variants of a line here should be inserted an important and well known stop to clarify via where the route goes. | recommended if several variants in one direction of a route exists |
on_call | yes/no | Does the service only run if ordered by phone/internet beforehand? | mandatory if yes, else optional |
name | <vehicle type> <reference number>: <initial stop> => <terminal stop> | Prose description of route variant. <Vehicle type> should be identical to route=*. Example: Bus 201: Uitikon Waldegg, Bahnhof => Uitikon, Wängi | recommended |
ref | Reference | The reference number by which the service is known. | recommended if no route_master=* exists, else optional |
ref:<qualifier> | Operator's or network's reference | The reference by which the service is known by a specific operator or network. | recommended if the service changes the reference number when crossing the network's border and no route_master=* exists |
operator | Operator | Name of the company that operates the service. | recommended if no route_master=* exists, else optional |
network | Local / regional network | Name of the network the route belongs to. | recommended if no route_master=* exists, else optional |
colour | Colour | Route/Service colour (HTML named colour or web colour in hexadecimal format). | recommended if no route_master=* exists, else optional |
Members of this relation are
Role | Refers to | Comment | Recommendation |
---|---|---|---|
stop / stop_exit_only / stop_entry_only | public_transport=stop_position | stop positions ordered in sequence from=* .. to=* followed by the corresponding platform (if available) | recommended if available |
platform / platform_exit_only / platform_entry_only | public_transport=platform | platforms and/or poles orderedin sequence from=* .. to=* headed by the corresponding stop position | recommended if available |
platform_single / platform_single_exit_only / platform_single_entry_only | public_transport=platform | platforms without a stop position. Data users have to calculate the stop position on their own | |
platform_additional / platform_additional_exit_only / platform_additional_entry_only | public_transport=platform | 2nd, 3rd, … platform (part) of a stop with multiple platform parts (e.g. platforms on the left and right of a railway track or platforms splittet up into multiple platforms due to different surfaces | |
none | all s used by the vehicle | in sequence from=* .. to=* representating the route of the vehicle | mandatory |
Extensive Bus Services
Coverage Areas are used for on-call bus services which do not serve a predefined rule. They are usually a collection of stops without any order. They are called "flächenhafte Rufbusse" (extensive on-call bus service) in German.
Each stop is included with two elements (if available): first the stop_position tagged with role stop
and immediately followed by the corresponding platform tagged with role platform
. The stops (stop_positions and platforms) should be inserted beginning with the initial stop_position/platform and ending with the terminal stop_position/platform. The ordering of the stop positions in the relation will determine the direction of the route.
If a stop is only for exiting or entering the vehicle (common for nightly services) the roles stop
and platform
should be replaced with stop_exit_only
or stop_entry_only
and platform_exit_only
or platform_entry_only
. This is not necessary for the first and last stop of a route.
Inserting the stop_position is important to know where the vehicle stops. Inserting the platforms is needed for correct pedestrian routing.
If a stop does not have a stop position mapped (e.g. simple bus stops along a road), you have to use platform_single
for the platform. If a platform is splitted into multiple ways/areas (because it is partially located on a bridge or has different surfaces, or because there are platforms on the left and on the right), the second, third etc. platform piece has be tagged platform_additional
. Otherwise data users might recognize these platforms as additionals stops of the route without a stop position.
This bus services are not members of a master route relation if they do not belong to another route.
Key | Value | Comment | Recommendation |
---|---|---|---|
type | public_transport | Defines the relation as route. | mandatory |
route | extensive_bus | Defines the route as an extensive on-call bus service | mandatory |
name | <vehicle type> <reference number>: <initial stop> => <terminal stop> | Prose description of route variant. <Vehicle type> should be identical to route=*. Example: Bus 201: Uitikon Waldegg, Bahnhof => Uitikon, Wängi | recommended |
ref | Reference | The reference number by which the service is known. | recommended |
ref:<qualifier> | Operator's or network's reference | The reference by which the service is known by a specific operator or network. | recommended |
operator | Operator | Name of the company that operates the service. | recommended |
network | Local / regional network | Name of the network the route belongs to. | recommended |
colour | Colour | Route/Service colour (HTML named colour or web colour in hexadecimal format). | recommended |
contact:phone | phone number, syntax see Key:contact:phone | Phone number where the bus can be ordered | mandatory, if it exists |
Members of this relation are
Role | Refers to | Comment | Recommendation |
---|---|---|---|
stop / stop_exit_only / stop_entry_only | public_transport=stop_position | stop positions ordered in sequence from=* .. to=* followed by the corresponding platform (if available) | recommended if available |
platform / platform_exit_only / platform_entry_only | public_transport=platform | platforms and/or poles orderedin sequence from=* .. to=* headed by the corresponding stop position | recommended if available |
platform_single / platform_single_exit_only / platform_single_entry_only | public_transport=platform | platforms without a stop position. Data users have to calculate the stop position on their own | |
platform_additional / platform_additional_exit_only / platform_additional_entry_only | public_transport=platform | 2nd, 3rd, … platform (part) of a stop with multiple platform parts (e.g. platforms on the left and right of a railway track or platforms splittet up into multiple platforms due to different surfaces |
Route master
The route master is a relation that contains all the direction and variant routes and the information that belongs to the whole service.
A master- contains all the important information that belongs to the service. All the variants/directions are members of this master relation.
Key | Value | Comment | Recommendation |
---|---|---|---|
type | route_master | Defines the relation as route_master. | mandatory |
route_master | train / subway / monorail / tram / bus / trolleybus / aerialway / ferry | Defines the route_master as train, subway, monorail, tram, bus, trolleybus, aerialway or ferry route_master. | mandatory |
ref | Reference | The reference number by which the service is known. | recommended |
ref:<qualifier> | Operator's or network's reference | The reference by which the service is known by a specific operator or network. | recommended if the service changes the reference number when crossing the network's border |
name | <Vehicle type> <Reference number> | Short prose description of route master. <Vehicle type> should be identical to route_master=*. Example: Bus 201 | recommended |
operator | Operator | Name of the company that operates the service. | recommended if available |
network | Local / regional network | Name of the network the route belongs to. | recommended if available |
colour | Colour | Route/Service colour (HTML named colour or web colour in hexadecimal format). | recommended if available |
Members of this relation are
Role | Refers to | Comment | Recommendation |
---|---|---|---|
none | all route variant/direction s | mandatory |