Quantum Navigator

by Martin Dobias

This page is devoted to Quantum Navigator, a Python application for routing and navigation in roadmaps.
Much of its functionality is based on libraries of Quantum GIS.

This is how does it look like:


The aim of the project is to enable basic routing and navigation capabilities on a roadmap. Given a shapefile of roadmap with correct format, you'll be able to select start and end point of your route. The application will calculate you a route that will meet your needs (shortest, fastest or economic path). This route should follow all restrictions like one-way streets or turning restrictions from one road to another one.

Core of the application is due efficiency written in C++. Roadmap is internally represented as a directed graph and the search for an optimal route is done with Dijkstra's algoritm. User interface is written completely in Python and makes thorough use of map canvas, adding several new map canvas items and allowing canvas interactions for road identification or selection of start/end points.


You can download source files, they're released under the terms of GNU GPL.
For testing purposes there is one sample dataset - only non-commercial use of it is allowed.


First of all, you need Quantum GIS version 0.9 or better. You can download it here. In case you're compiling it from source by yourself, don't forget to build it with Python bindings.

Now proceed with installation of Quantum Navigation:

  1. Set your paths: (You can create just a simple project in QGIS which will contain only the layer with roadmap)
  2. Go to Quantum Navigator directory and run from console:
         mkdir build && cd build
         cmake ..
         ccmake .      (in this utility set QGIS_PREFIX variable to the path of your QGIS installation)
    This will compile routing library (dglib) and its python bindings (pydglib). Also it will convert QT .ui and .qrc files to Python code
  3. Build the graph for routing
         cd build/dglib
  4. Run Quantum Navigator
         cd python
         python qnavigator.py


Last updated: June 13, 2007