Public transport

From OpenStreetMap Wiki
(Redirected from Mass Transit)
Jump to: navigation, search
Available languages — Public transport
· Afrikaans · Alemannisch · aragonés · asturianu · azərbaycanca · Bahasa Indonesia · Bahasa Melayu · Bân-lâm-gú · Basa Jawa · Basa Sunda · Baso Minangkabau · bosanski · brezhoneg · català · čeština · corsu · dansk · Deutsch · eesti · English · español · Esperanto · estremeñu · euskara · français · Frysk · Gaeilge · Gàidhlig · galego · Hausa · hrvatski · Igbo · interlingua · Interlingue · isiXhosa · isiZulu · íslenska · italiano · Kiswahili · Kreyòl ayisyen · kréyòl gwadloupéyen · Kurdî · latviešu · Lëtzebuergesch · lietuvių · magyar · Malagasy · Malti · Nederlands · Nedersaksies · norsk bokmål · norsk nynorsk · occitan · Oromoo · oʻzbekcha/ўзбекча · Plattdüütsch · polski · português · română · shqip · slovenčina · slovenščina · Soomaaliga · suomi · svenska · Tiếng Việt · Türkçe · Vahcuengh · vèneto · Wolof · Yorùbá · Zazaki · српски / srpski · беларуская · български · қазақша · македонски · монгол · русский · тоҷикӣ · українська · Ελληνικά · Հայերեն · ქართული · नेपाली · मराठी · हिन्दी · भोजपुरी · অসমীয়া · বাংলা · ਪੰਜਾਬੀ · ગુજરાતી · ଓଡ଼ିଆ · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · සිංහල · བོད་ཡིག · ไทย · မြန်မာဘာသာ · ລາວ · ភាសាខ្មែរ · ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ‎ · አማርኛ · 한국어 · 日本語 · 中文(简体)‎ · 中文(繁體)‎ · 吴语 · 粵語 · ייִדיש · עברית · اردو · العربية · پښتو · سنڌي · فارسی · ދިވެހިބަސް
Logo. Feature : Public transport
One example for Feature : Public transport
Railways, buses, trams, etc.

An overview of current public_transport=* (or mass transit) related tagging.


Why Do We Map Public Transport in OpenStreetMap?

The main role of street maps has generally been to help people navigate when walking, or when using private motor vehicles on the public highway system. Public transport provides an alternative which is often faster, more environmentally sustainable, and sometimes even more convenient.

Unlike with walking and driving, where it's enough for maps to simply describe the street and footpath layout, allowing people to decide their own route and schedule, with public transport, we need to describe the infrastructure (e.g., the train tracks) as well as the services which operate on them (e.g., bus lines, express trains and local trains).

Whilst OpenStreetMap is probably not the place for full timetable information, adding information about public transport infrastructure and services to the map means that we can provide basic routing services. Very few other maps currently do this (although Google Transit is also making improvements in this area).

Discussion of public transport on OSM takes place on the talk-transit mailing list.

Different Tagging Schemas

As time passed, several tagging schemas were developed and were/are in use.

  • The Old Public Transport Schema, sometimes called Public Transport Version 1 (PTv1) is still (mid 2017) widely in use.
  • The Oxomoa Schema is a schema which has large similarities to Public Transport Version 2. It has not succeded. You might sometimes find route relations which were created around 2010 and have not been modified since that time. It is documented on User:Oxomoa/Public_transport_schema.
  • The New Public Transport Schema has been called Public Transport Version 2 (PTv2) since 2014 and is the latest schema. The original wording of its proposal can be found at Proposed_features/Public_Transport.

Types of public transport

Public transport comes in various different forms and types. Each type is usually distinguished by the technology and infrastructure it uses. For example, railways use trains running on metal rails, buses use the main road network, and airplanes use the sky …

Some types may blur the boundaries a little. For example, trams are a form of 'light rail' (using lighter-than-normal train vehicles) which typically run on metal rails embedded into public roads (although may also have sections of dedicated track). There might also exist differences in signalling and the priority at intersections (in some cities trams are prioritised by traffic signals.

In some cases a public transport line can change its type. The following pictures show the Badner Bahn from Vienna (Austria) to Baden (near Vienna, Austria), also known as "Lokalbahn" (literally "local train")

The distinctions can be even more subtle. Buses and coaches, for example, both use motor vehicles on the public road network, however coaches tend to be bigger and more comfortable, and used for longer distances (with fewer stops).

Whilst it may be tempting to try and come up with definitions for these different types, ultimately, maps are most useful if they match with people's expectations. So, when choosing which type a particular public transport service falls into, it's generally best to go with whatever the users of that service general understanding of it would be.


Main article: Buses

Buses, coaches, guided-buses and trolleybuses all operate mainly on the highway (for trams see the Trams section below).

Simple bus stops are mapped with a node or polygon on the side of the road where people wait and is tagged with public_transport=platform. Alternatively the position of the bus stop pole can be used.

More complex bus stops are made up of different elements, which are all put into a relation with type=public_transport and public_transport=stop_area. For example those elements can be the stop position of the bus on the road (way) tagged with public_transport=stop_position or any additional objects like a bench amenity=bench or others.

Every transit service (e.g., No. 38) is usually represented as one route master relation containing two variant route relations, one for each direction.

Wires used by trolley buses can be mapped by adding trolley_wire=yes to the highway. The highway=bus_guideway tag should be used for sections of guided busway.


Main article: Railways

Railway services (mainline, metro, light rail, tram, subway, etc.) all generally operate on metal rails. The main railway infrastructure is defined using railway=*.

Like for buses, public_transport=stop_position and public_transport=platform can be used for any type of railway halts. railway=subway_entrance can be used to define entrances to metro stations.

A more detailed description about stations and halts is described in the approved feature Public Transport.


Main article: Trams

Trams are a form of light rail which share their path with the road for some part of their route.

Tramways use the railway=tram tag, this being either applied to the same way as the highway (when running along the street) or on a separate way. A separate way should be used when the tram track is separated from the street or where the ways need different tagging — for example where the road is one-way and the tram is two-way.


Main article: Aeroways

Flying (in aircraft) has become one of the most prevalent means of long-distance public transport travel. Currently, flight paths aren't included on our map (they're much less physical than roads and rails). However, this mode of transport does use an extensive range of physical on-the-ground infrastructure, including airport terminals, taxiways, runways, and connecting transport services, and all of these features can be added to OSM.

While the map currently largely goes down to a level of detail of showing airport buildings and runways, in the future we may show the location of the individual aircraft 'gates' and the internal layout of airports.


Main article: Ferries

The route of a ferry service can be defined using ways tagged with route=ferry. For sections of route across open water such as the sea, lakes and wide rivers a new linear way tagged as route=ferry should be created. For rivers using waterway=river add route=ferry to this way. If the ferry service ends along the length of an existing river then the river's way should be snipped into two at the point where the ferry service terminates. It is not clear how one tags a ferry that crosses a river that is constructed from a single way as both ends of the ferry would be at the same point. It is possible that adding route=ferry to a node on the river may be appropriate, similar to a crossing point on a road.

Places where people and vehicles can access ferry services should use public_transport=platform with ferry=yes and public_transport=stop_position. The earlier-used amenity=ferry_terminal is now deprecated, because it is very simplified and not exact enough.

The complete route for a ferry can be described using a relation route using route=ferry.

Cable cars

Main article: Aerialway

Cable-cars, drag-lifts and chair-lifts can be modeled using aerialway=*. These can be considered as a form of public transport in that they are shared, operated for fixed times of day at predictable intervals. Some cable cars may operate to a clock-face timetable.

Aerialway stations are often tagged as aerialway=station but should be replaced with public_transport=station, public_transport=stop_position and aerialway=yes.

Service routes

Main article: Relation:route

In addition to modelling the infrastructure on which vehicles operate and the places where people embark and disembark from transit services, it is also useful to model the public transport services themselves. In particular, this makes it possible to provide public transport routing services.

A route is a relation that describes the physical path taken by the vehicles through the infrastructure by a transit service which is known to the public with a particular reference or name. A route should contain an ordered list of all ways used by the service from the starting station to the terminal station. The route also includes details of actual stop positions (with role stop) and platforms (with role platform). Each direction and each variant of the service is represented in its own route relation.

Typical tags used on a public transport service route relations are:

Key Value Description
type route It is a route relation.
route train, bus, tram, etc. Type of public transport vehicle
ref text Reference code for route
name text Name for the route
operator text Company or organisation that operates the route; e.g., Deutsche Bahn AG, Connex, Interconnex etc.
network text Name of the network; e.g., BVG, RMV. There is no consensus wether to use abbrevations or not.

Other tags may apply for different types of service, see approved feature public transport for more details.

All the routes belonging to the same service can be put into a master relation with type=route_master, containing all the keys that are valid for all sub-relations, directions and variants.


Main article: Proposed features/Public Transport



The public transport plugin for JOSM simplifies the otherwise quite intricate editing of public transport data.

The CustomizePublicTransportStop plugin for JOSM simplifies creation and setup of public transport stops in according with standards.

User:MARC13/easy-routes(pl) - another JOSM plugin in Polish.


There are several people creating specialist public transport maps:

Mailing list

The talk-transit mailing list was created specifically for discussion of public transport related stuff.

Quality assurance

See Public transport Quality Assurance.

Other tools

Details on usage of parameters is described on the public_transport page.

Public transport by country

Public transport by country:


See also: Import/Catalogue
List of transit data imports. Good place to start to see how it's been done elsewhere but be sure to follow Import/Guidelines and Automated Edits code of conduct.

Project Location Summary
Import/VTA Transportation California, USA stops
NaPTAN UK stops
Switzerland/DIDOK Switzerland stations
VRS/Haltestellenimport(de) Cologne, Germany stops
Tenerife Bus Transport Import Tenerife, Canary Islands stops & routes
(undocumented: see [1]) Ottawa, Canada stops

GTFS standard

Data conforming to the GTFS standard could be imported using GO-Sync. It appears to have some useful usable functions and promises to be powerful but is still under (slowed) development.

See also

Further reading