Ideas for routes of Public Service Vehicles
Since the tagging currently in use seems too complicated, the following schema might serve ideas for a simpler alternative.
Similar to the current tagging, each trip of a vehicle goes into its own relation. Trips are not taken in reverse order and do not have variants or alternatives.
In contrast to the existing tagging public_transport=stop_area relations are not encouraged nor do trips include the platforms or amenities at the stopping places. This proposal does only include the stop position (where passengers board) and the roads (means waterways or railways as well) based on the assumption that the present amenities can be derived by proximity. If one want to be explicit, a public_transport=stop_area relation can optionally be created, though.
The schema described here optionally allows for inclusion of boarding times (similarly to Gino-52's proposal in http://forum.openstreetmap.org/viewtopic.php?pid=554524#p554524), which in turn allows for pedestrian routing that includes public services vehicles.
Tagging of trip relations
|type=*||public_transport||Marks relation as related to public transport.|
|public_transport=*||trip||Relation describes course taken by a vehicle.|
|ref=*||Operators reference number||Operators reference number, not necessarily numeric or unique.|
|repetition=*||Times, for example
||One or more points in time when course is taken. First mentioned time correlates with possible mentioned stop times in the relation members role, other points in time define the time offset for subsequent runs. Use repetition=* when the same trip is served repeatedly at different times.|
|service_period_end=*||Point in time, for example
||Time when the trip is no longer served. In other words the time when a timetable change gets effective that obsoletes the trip.|
|bus=* for example||yes for example.||Marks the trip as served by bus, adjust for other vehicle types.|
|stop||public_transport=stop_position with name=*
( or )
|Refers to stop position of vehicle where passengers hop on and off. Role can be given as |
|course||Any||Segment of course taken by a vehicle.|
The order of relation members is expected to reflect the movement of the vehicle. Therefore the trip will likely start with a
stop role, one or more
course roles, another
course roles, ….
Ways that are referenced as
courses form part of the vehicles route, this includes leaving the main road to drive into a bus bay (see service=busway). Ways might also be part of the relation multiple times when the same way is driven several times as part of a single trip.
Nodes that are referenced as
stops need to lie between 2 ways of role
course (unless the node represents the beginning or end of the trip). Existing ways might need to be broken into 2 parts to create a node that is valid for role
stop. Ways that are referenced as
stops must also lie between 2 ways of role
course and it is expected that passengers can board along the whole way in role
The same time can be given for multiple members of role
stop. This applies for vehicles that can be boarded at multiple known locations at the same time (trains for example). The very same tagging is used when the distance between 2 stops takes less than 1 minute.
Example for members and their roles
Another example for members and their roles
Create a relation of described in https://wiki.openstreetmap.org/wiki/Proposed_features/Public_Transport#Route_master and add the trip relations as members.
Example visualization (modified JSOM)
The screenshot below shows how a bus route according to the presented schema could be visualized during editing. Gaps in the route become apparent due to a modification to JOSM to show stop nodes as connected when they are in between two connected way of the route.