Feeder bus service

In last year's Google Summer of Code program a student implemented a pgRouting function for multi-modal routing. It didn't make it into the new 2.0 release, so it probably doesn't work right now, but you may want to take a look at the available resources to see if it's helpful or not:

  • Wiki Page: https://github.com/pgRouting/pgrouting/wiki/Multi-modal-Public-Transit-Routing
  • Small tutorial: https://github.com/pgRouting/pgrouting/wiki/MMPTR-Tutorial
  • Github branch: https://github.com/pgrouting/pgrouting/tree/gsoc-multimodal

It would be nice to get this function into the next release, so please contact the developer mailing list to coordinate the necessary work in case you're interested: http://pgrouting.org/support.html


Actually creating the loop you want is really easy with SQL:

SELECT DISTINCT ON (b1.line, b1.number) b1.line,b1.number,b2.waiting
FROM busstops AS b1
  LEFT JOIN busstops AS b2
    ON b1.line = b2.line
      AND b1.number<=b2.number
      AND b2.waiting IS NOT NULL
ORDER BY b1.line,b1.number,b2.number;

Fiddle.

It'd also be easy to, let's say, sum transfer times from stop to stop.

And you could use regular pgRouting if only you manage to transform the routes into temporal graph (with nodes representing times of departure and time for route cost).