Skip to content

A C++ implementation of public transport routing algorithms

License

Notifications You must be signed in to change notification settings

teogramm/pt-routing

Repository files navigation

Public transport routing algorithms

C++ implementation of the RAPTOR public transport routing algorithm, with more algorithms possibly coming in the future.

This is a project I develop in my spare time as a hobby. The goal is to create performant and good quality code utilising C++23 features.

Implementation details

The library works by instantitating all trips and routes of a public transport network for a given time period. The internal storage is independent of the underlying format of the feed, making it possible to import various feed formats. An import function for GTFS feeds is provided.

Transfers

On-foot transfers are currently calculated by approximating the straight line distance between two stops and estimating the walking time. It is possible to provide another function for calculating the walking distance between two stops (for example by examining OpenStreetMap data).

Implemented algorithms

The original version of RAPTOR has been implemented, as it is presented in the paper. For this reason, walking transfers between different platforms and stops are not counted as transfers, in the way those are defined in the paper.

Possible future algorithms

License

All code in this repository is provided under the GPLv3 license.

About

A C++ implementation of public transport routing algorithms

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published