View on GitHub

ToureNPlaner

Online route planning with OpenStreetMap

ToureNPlaner is a easily extendable route and tour planning system using OpenStreetMap data and state of the art algorithms.
Developed at the FMI at the University of Stuttgart

Demo Android App

Web Client

The Web Client is written using Javascript, HTML5 and CSS and tries to use the newest web technologies available.

It uses Leaflet to display a map, on which the route planning is done. For a simple MVC-Framework, Bootstrap is used. The view portion of the app uses Handlebars for templating and jQuery for manipulation.

Android App

The Android App uses a modified version of the Mapsforge library for map display and ActionBarSherlock to make the ActionBar available on all Android versions. It also uses the Jackson Java JSON-processor

Server

The actual routing and tour planning in the ToureNPlaner system is done by our server component. This is a Java based application, which uses the Netty Framework and Jackson to act as a HTTP server for AJAX requests.
Together with a high performance graph data structure it provides an extendable framework for graph based algorithms. All algorithms hosted in the server are readily accessible to all clients via a JSON based protocol.

Today the Server hosts algorithms for calculating the shortest path between points, as well as the Traveling Salesmen problem (TSP), that is the shortest tour visiting all given points. We also provide a binary search based algorithm to compute a short route between 2 points that has less than a given limit of climb (CSP).
As many of you will know the former two problems are very hard to solve (NP-hard to be exact) so they will only be approximated for larger problem instances. For example, the current version of our server can solve TSPs with up to 11 points optimally and will use a 2-Opt based heuristic for anything bigger than that.

Authors

In alphabetical order: Vivian Eggert, Philipp Gildein, Christoph Haag, Steffen Hanikel, Huy Viet Le, Sascha Meusel, Niklas Schnelle, Peter Vollmer and Kevin Wenz.

Advisor: Stefan Funke

Icon and marker by Philipp Pfinsttag

Support or Contact

If you have found a bug or want to suggest a new feature then you can create an issue on the corresponding GitHub project: