Passing in the static GTFS data to the API via the commandline or config.yml is simple enough, but I can’t see a way to specify the GTFS realtime feed and use it effectively. Given the location of GTFS realtime feed data that updates every few seconds, how would we use this with Graphhopper to be used in public transit routing?
With no documentation I had to look through the codebase for a solution. It seems like the only way to do this is running
graphHopperFactory.createWith(newFeedMessage, agencyId) every time the FeedMessage updates, meaning once every second in our use case. This would also requiring writing a wrapper for the API.
Currently, we use three instances of the 0.9 API for our service. One for bus routes, one for walking routes, and one for map-matching (We parse the realtime GTFS data ourselves and adjust departure/arrival times manually for bus routing requests to emulate delays). My goal is to get the number of Graphhopper instances from three down to one and move the realtime-GTFS functionality to Graphhopper by upgrading to 0.11 and adjusting the API configuration.
You can see our repository here: https://github.com/cuappdev/ithaca-transit-backend