Introducing GTFS-realtime to exchange realtime transit updates
By
Vladimir Rychev, Software EngineerCross-posted
with the Google
LatLong BlogIn June, we launched
Live
Transit Updates, a feature that adds realtime public transport information to Google
Maps and Google Maps for mobile. This feature is powered by the
GTFS-realtime feed format. Today
we’re making the specification of this format public on Google Code. GTFS-realtime allows
public transport agencies to provide realtime updates about their fleets. If you’re developing
a trip planner or similar application, you can process these feeds and keep your users
up-to-date with realtime information.
GTFS-realtime is an extension to
GTFS,
the General Transit Feed Specification, published by Google in 2006. Nowadays, GTFS is a very
commonly used feed format that public transport agencies use to (publicly) provide their
transport information. As opposed to GTFS feeds, GTFS-realtime feeds contain very dynamic
information. This means that they have to be updated frequently and applications that use them
have to fetch them frequently as well. This requires a significant infrastructure from the
transport agency’s side, but it results in a continuously updated description of the current
situation.
The specification currently includes three types of realtime
updates:
Trip
Updates,
Service
Alerts and
Vehicle
Position updates. Each type of update has to be provided in a separate feed, and can
be used independently.
Trip Updates are a way to present changes in the
timetable. When a trip is delayed, canceled, added, or re-routed, a Trip Update can be used to
provide this information in real time. Service Alerts can be used to notify passengers about
special circumstances in the public transport network. In a Vehicle Position update, an agency
provides the current location of an individual vehicle.
To encode
realtime updates,
Protocol
Buffers are used. Protocol Buffer data structures can be processed very efficiently,
resulting in low processing times compared to other popular data encapsulation standards.
Because Protocol Buffers are compressed, they also use communication bandwidth efficiently.
Protocol Buffers are very easy to work with, and there are libraries available for many
programming languages.
The specification was designed through a
partnership of the initial Live Transit Updates partner agencies, a number of transit
developers, and Google. It has been
published under the Creative
Commons Attribution 3.0 license, the same license used for GTFS. You can discuss the
specification and propose changes in the
discussion
group.
MBTA (Boston) and
TriMet (Portland) have already made
their GTFS-realtime feeds available for use in your applications.
BART (SF Bay Area) and
MTS (San Diego) have committed to making their feeds
available in the future as well. We hope that many more agencies will follow!
Vladimir Rychev is
a Software Engineer on the Google Transit team in Zürich. Before moving to Switzerland
Vladimir taught kids at the Moscow 57th school, traveled the world from Cuba to Kazakhstan and
entered programming contests from ICPC to topcoder.Posted by Scott Knaster,
Editor