Skip to content
Branch: master
Go to file

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time

Transit Planner

An Experiment on Transfer Patterns Robustness

Visit the project site for an overview and experimental results.


Transit Planner is an efficient route planner for public transportation networks. Its implementation is based on the transfer patterns precomputation, providing ultra-fast query times on large networks.

The planner was used to conduct experiments on the reliablity of transfer patterns in the presence of real-time updates of the network, like delays or connectivity problems.


Transit Planner and all its auxiliary modules were developed by Eugen Sawin, Philip Stahl and Jonas Sternisko during a master team project at Prof. Hannah Bast's chair at the University of Freiburg, Germany.


Transit Planner and all its auxiliary modules are released under the GNU General Public License Version 3, see the COPYING notice for the full license text.


This is Eugen Sawin's fork of the original team project. To obtain the version used during the experiments, visit the code section of the project overview website.


  • POSIX.1b-compliant operating system (librt)
  • GNU GCC 4.6
  • GNU Make
  • Python 2.7 (only for style checking and the documentation server)


  • Boost C++ Libraries 1.46
  • OpenMP 4.6
  • Google C++ Test Framework 1.6 (only required for testing)
  • Google C++ Style Guide Linter (included, only required for style checking)


To build Transit Planner use:

$ make compile

For performance measuring use the more optimised version:

$ make opt

Alternatively you can build, test and check style at once using:

$ make

Testing (depends on gtest)

To build and run the unit tests use:

$ make test

Checking Code Style

To test code style conformance with the Google C++ Style Guide use:

$ make checkstyle


To start the Transit Planner server use:

$ ./build/ServerMain [-i <datasets>] [-m <num-workers>] [-p <port>]

where <dataset> are the GTFS directories of the transit networks,
<num-workers> are the maximum number of threads to be used and
<port> is the port to be used for listening.

To show the full usage help use:

$ ./build/ServerMain -h
You can’t perform that action at this time.