Add some documentatiion
authorhorwitz <horwitz@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sun, 4 Dec 2005 10:31:41 +0000 (10:31 +0000)
committerhorwitz <horwitz@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sun, 4 Dec 2005 10:31:41 +0000 (10:31 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk/navit@14 ffa7fe5e-494d-0410-b361-a75ebd5db220

README

diff --git a/README b/README
index e69de29..3eb8f6e 100644 (file)
--- a/README
+++ b/README
@@ -0,0 +1,199 @@
+NavIT
+=====
+
+Navit is a open source (GPL) car navigation software for Linux systems
+based on the GTK+ toolkit.  Navit will display your position on a
+2D map, or as a 3D visualisation (planned) from GPS sensor data. Navit
+is also capable of providing precise route calculation, touch screen
+functionality and supports Points of Interest (POI).
+
+Unlike other navigation systems, Navit maps are dynamically generated
+in real time from vector data.
+
+
+
+Maps:
+=====
+
+The best navigation system is useless without maps. Those two maps
+are known to work:
+
+       http://www.amazon.de/exec/obidos/ASIN/3829731280
+               (grosser Reiseplaner)
+       http://www.amazon.de/exec/obidos/ASIN/3934073697
+               (Telefonbuch Deutschland Map+Route)
+
+Once you got one of those you need to let NavIt know about it by
+setting the MAP_DATA environment variable to the directory of the
+map files:
+
+       export MAP_DATA=/home/navit/reiseplaner/travel/DE.map
+
+
+Subdirectories:
+===============
+
+fib-1.0
+       The library for Fibonacci heaps from 
+               http://resnet.uoregon.edu/~gurney_j/jmpc/fib.html
+       The Fibonacci heaps are used in the routing algorithm.
+
+graphics
+       The map layout functions.
+       As of now only the gtk_drawing_area is working.
+       We'll eventually move to cairo. 
+
+gui
+       The user interface. So far there are a lot of files still in
+       the main directory.
+
+plugins
+       Plugable modules. So far there is only one but we hope to
+       have more in the future.
+       - poi_geodownloads
+               Display POIs from www.geodownload.com
+               (depends on mdbtools.sf.net)
+
+
+Files in src:
+=============
+
+block.c:
+       Manages the blocks of the map. Each block of the map is
+       seperated into two sub blocks of half the size.
+
+command.c
+       Command line interface.
+
+compass.c
+       Displays the compass on the map.
+
+coord.c
+       Reads coordinates from the map.
+
+country.c
+       Lists all available countries and provides funtions to access
+       the corresponding data.
+
+cursor.c
+       Draws the vehicle possiton on the map.
+
+data_window.c
+       Displays informations about visible objects.
+
+destination.c
+       The destination selection dialog.
+
+display.c
+       Manages the display-list. The graphics driver is called from
+       here to display the map.
+
+file.c
+       Management of map data files.
+
+graphics.c
+       Generates the display-list.
+
+log.c
+       Logs local changes to the map datas. its possible to modify
+       the map without changing the original map data. The modified
+       data are stored in log.txt and reread at program start.
+
+main.c
+       Guess what?
+
+map_data.c
+       Manages the differnt map sources. There's an overview map of
+       europe and a detailed map of each country.
+
+menu.c
+       Callback functions for the gui menu.
+
+navigation.c
+       Generates directions to a destination ( not jet completed )
+
+param.c
+       Utility functions for data_window and and popup menu
+
+phrase.c
+       Assembles directions for the speech guide.
+
+plugin.c
+       Loads available pugins.
+
+poly.c
+       Generate display-list for polygons. ( cities, lakes, ... )
+
+popup.c
+       Popup-menu dialog
+
+profile.c
+       A simple timer for performance analysis.
+
+route.c
+       The routing algorithm. ( see below for a more detailed
+       description )
+
+search.c
+       Functions to search a place ( city, street, ... ) by name
+
+speech.c
+       Interface to speechd
+
+street.c
+       Generates a display-list for streets
+
+street_name.c
+       Reads street names from map datas.
+
+town.c
+       Generates a display-list for city names.
+
+transform.c
+
+       Coordinate transformation. The map uses a Mercator projection.
+
+tree.c
+       Manages search trees.
+
+util.c
+       Some utility functions for strings
+
+vehicle.c
+       Calculates the current vehicle possistion and direction.
+       Issues a cursor update if needed.
+
+
+Routing algorithm
+=================
+
+NavIt uses a dykstra algorithm for routing. The routing starts at the
+destination by assigning a value to each point directly connected to
+destination point. The value represents the estimated time needed to
+pass this distance.
+
+Now the point with the lowest value is choosen using the Fibonacci
+heap and a value is assigned to connected points whos are
+unevaluated or whos current value ist greater than the new one.
+
+The search is repeated until the origin is found.
+
+Once the origin is reached, all that needs to be done is to follow the
+points with the lowest values to the destination.
+
+
+
+Plans:
+======
+
+- use ciaro to draw the map
+
+- get GPS data from gpsd
+
+- complete speech output (speech.c, phrase.c)
+
+- complete directions (navigation.c)
+
+- investigate problem with fib-1.1
+
+