Opensource routing tools

I have long been interested in routing technology and often wondered why there seemed to be nothing freely available on the web. After a lot of digging around i stumbled upon two potential options, Geotools‘ routing module and PGDijkstra, an extension that sits on top of PostGIS.

To save anyone else out there some time in finding this same info, i have attached the relevant info to the bottom of the post.

I am extremely interested in the work Paschain has done on the PGDijkstra module which he successfully uses in camp2camp’s GPL CartoWeb frontend (see this demo for an example). Unfortunately Paschain has only deployed it into a *nix environment and i am yet to have any luck building the module from source in win32. Any diehard PostGIS experts reading this, i implore you to have a read of the docs and let me know if you have had any success.

If there are any other solutions out there that i missed, please drop me a line.


Geotools routing module

I have not put a great deal of time investigating this module as it has a big limitation of having to maintain the graph in memory. I wanted it to run on a quite large road dataset and so storing the edges in memory wasn’t really an option.

If you’re just generally interested, check out the following thread where the author Yves describes how to enable the module for the demo.

Yves Bolognini wrote:
I’m the one who wrote the initial GeoTools routing module. This was
actually a test module as the idea was to implement routing in PostGIS.

If you still want to use GeoTools routing, you’ll first need to install
the PHP/Java Bridge and GeoTools 2.1.x:

http://www.php.net/manual/en/ref.java.php

http://www.geotools.org/Downloads

Then you can activate Routing plugin on test_project client:

/projects/test_project/client_conf/client.ini
loadPlugins = …, routing

…and on server:

/projects/test_project/server_conf/projectmap/projectmap.ini
mapInfo.loadPlugins = …, routing, projectRouting

Layers used for routing in this demo are more_points and more_lines.

I haven’t tried the steps mentioned above, so attempt at your own risk ! :)