There are specialized routing engines for public transit, the most well-known are OpenTripPlanner and R5. GraphHopper also supports importing GTFS (and even GTFS Realtime?) as public transit data which is awesome.
Nevertheless, there are obviously differences between GH and OTP, two of which I have encountered are:
Apparently GH “simulates” multi-modal routing by finding these routes:
- Fastest route
- Route(s) with least number of transfers
- Walk-only route
but OTP takes a different approach.
Other engines employ a variation of RAPTOR algorithm for path finding which claim to be more effective for public transit routing.
What features does other engines, particularly OpenTripPlanner, offer that GraphHopper doesn’t yet?
Also, is there any architectural differences that makes the implementation of those features harder in GH?