To provide total transparency of our analysis, we release the code of the Transit Planner and the auxiliary modules under the GNU General Public License Version 3. We also provide the datasets used for the experiments. Together with the code, this allows for a complete reproducibility of the experiments.
Download the source tarball of the code version used during the experiments.
To build Transit Planner use
make compile. For
performance measuring, prefer the more optimized version built
To run the unit tests use
To check code style conformance with the Google C++ Code Style use
Alternatively you can build, test and check style at once using
To start the Transit Planner server use
./build/ServerMain [-i <datasets>] [-m <num-workers>] [-p <port>]
<dataset> are the GTFS directories of the
<num-workers> are the maximum number of threads to be
<port> is the port to be used for listening. To load multiple GTFS feeds, use a space separated list, i.e.
-i "GTFS1 GTFS2".
To show the full usage help use
Once the server is running, you can use a regular browser to access the user interface of Transit Planner.
The user interface consists of the map area, the info field and the command input.
The map area is used to view the routes and to conduct manual tests on the loaded network.
By left-clicking on the map you select the departure and destination
stops. Once at least one destination stop is selected, the optimal routes
are calculated and displayed on the map. The multi-criteria costs are
displayed as tuples travel-time, penalty, where travel-time is
the required time to travel in minutes and penalty is the number of
transfers and/or walking transitions required on the given route.
Right-clicking on a selected stop will delete the stop and all its routes.
The displayed routes consist of the travel paths with each transfer and walking transitions depicted by a label. When the use of transfer patterns is enabled, paths calculated using the transfer patterns are displayed in blue and the Dijkstra paths in green.
The info field is right below the map area and displays information received from the server. E.g. when conducting experiments an overview of the results is be displayed here.
The command input is below the info field and is used to control the server, set client variables, create delay scenarios, conduct experiments, load maps, reproduce specific routes and search for map locations by name.
All commands start with a
/, otherwise a location search
is triggered. For a full description of all commands use the help command
/help. To get more specific help about the calling conventions
of a given command use
Here is the code overview generated by Doxygen.