added more modules
[navit-package] / README
1 NavIT
2 =====
3
4 Navit is a open source (GPL) car navigation software for Linux systems
5 based on the GTK+ toolkit.  Navit will display your position on a
6 2D map, or as a 3D visualisation (planned) from GPS sensor data. Navit
7 is also capable of providing precise route calculation, touch screen
8 functionality and supports Points of Interest (POI).
9
10 Unlike other navigation systems, Navit maps are dynamically generated
11 in real time from vector data.
12
13
14
15 Maps:
16 =====
17
18 The best navigation system is useless without maps. Those three maps
19 are known to work:
20
21         http://www.amazon.de/exec/obidos/ASIN/3829731280
22                 (Grosser Reiseplaner, detailed map of europe)
23         http://www.amazon.de/exec/obidos/ASIN/3934073697
24                 (Telefonbuch Deutschland Map+Route,
25                   detailed map of germany, coarse map of europe)
26         http://www.amazon.de/exec/obidos/ASIN/3934073719
27                 (Gelbe Seiten Map+Route, detailed map of germany,
28                   coarse map of europe)
29
30 Installing the Maps:
31 - Gelbe Seiten and Telefonbuch Deutschland
32 unzip karten.zip from the map cd where the map should go (about 1.2 GB)
33 export MAP_DATA=<path to where the map has been unzipped>/d7.map
34
35 - Grosser Reiseplaner
36 Compile unshield from http://synce.sourceforge.net/synce/unshield.php
37 run "unshield x <path to your dvd>/travel/data2.cab" where the map
38 should go (about 4.3 GB)
39 export MAP_DATA=<path to where the map has been unshielded>/DIRMAP_MAP/DIE.map
40
41
42 GPS Support:
43 ============
44
45 Navit read the current vehicle possition either directly from a file with
46         export GPSDATA=file:filename
47 or from gpsd with
48         export GPSDATA=gpsd://host[:port]
49 [now in navit.xml]
50
51
52 Subdirectories:
53 ===============
54
55 fib-1.0
56         The library for Fibonacci heaps from 
57                 http://resnet.uoregon.edu/~gurney_j/jmpc/fib.html
58         The Fibonacci heaps are used in the routing algorithm.
59
60 graphics
61         The map layout functions.
62         As of now only the gtk_drawing_area is working.
63         We'll eventually move to cairo. 
64
65 gui
66         The user interface. So far there are a lot of files still in
67         the main directory.
68
69 plugins
70         Plugable modules. So far there is only one but we hope to
71         have more in the future.
72         - poi_geodownloads
73                 Display POIs from www.geodownload.com
74                 (depends on mdbtools.sf.net)
75
76
77 Files in src:
78 =============
79
80 block.c:
81         Manages the blocks of the map. Each block of the map is
82         seperated into two sub blocks of half the size.
83
84 command.c
85         Command line interface.
86
87 compass.c
88         Displays the compass on the map.
89
90 coord.c
91         Reads coordinates from the map.
92
93 country.c
94         Lists all available countries and provides funtions to access
95         the corresponding data.
96
97 cursor.c
98         Draws the vehicle possiton on the map.
99
100 data_window.c
101         Displays informations about visible objects.
102
103 destination.c
104         The destination selection dialog.
105
106 display.c
107         Manages the display-list. The graphics driver is called from
108         here to display the map.
109
110 file.c
111         Management of map data files.
112
113 graphics.c
114         Generates the display-list.
115
116 log.c
117         Logs local changes to the map datas. its possible to modify
118         the map without changing the original map data. The modified
119         data are stored in log.txt and reread at program start.
120
121 main.c
122         Guess what?
123
124 map_data.c
125         Manages the differnt map sources. There's an overview map of
126         europe and a detailed map of each country.
127
128 menu.c
129         Callback functions for the gui menu.
130
131 navigation.c
132         Generates directions to a destination ( not jet completed )
133
134 param.c
135         Utility functions for data_window and and popup menu
136
137 phrase.c
138         Assembles directions for the speech guide.
139
140 plugin.c
141         Loads available pugins.
142
143 poly.c
144         Generate display-list for polygons. ( cities, lakes, ... )
145
146 popup.c
147         Popup-menu dialog
148
149 profile.c
150         A simple timer for performance analysis.
151
152 route.c
153         The routing algorithm. ( see below for a more detailed
154         description )
155
156 search.c
157         Functions to search a place ( city, street, ... ) by name
158
159 speech.c
160         Interface to speechd
161
162 street.c
163         Generates a display-list for streets
164
165 street_name.c
166         Reads street names from map datas.
167
168 town.c
169         Generates a display-list for city names.
170
171 transform.c
172
173         Coordinate transformation. The map uses a Mercator projection.
174
175 tree.c
176         Manages search trees.
177
178 util.c
179         Some utility functions for strings
180
181 vehicle.c
182         Calculates the current vehicle possistion and direction.
183         Issues a cursor update if needed.
184
185
186 Routing algorithm
187 =================
188
189 NavIt uses a dykstra algorithm for routing. The routing starts at the
190 destination by assigning a value to each point directly connected to
191 destination point. The value represents the estimated time needed to
192 pass this distance.
193
194 Now the point with the lowest value is choosen using the Fibonacci
195 heap and a value is assigned to connected points whos are
196 unevaluated or whos current value ist greater than the new one.
197
198 The search is repeated until the origin is found.
199
200 Once the origin is reached, all that needs to be done is to follow the
201 points with the lowest values to the destination.
202
203
204
205 Plans:
206 ======
207
208 - use ciaro to draw the map
209
210 - get GPS data from gpsd
211
212 - complete speech output (speech.c, phrase.c)
213
214 - complete directions (navigation.c)
215
216 - investigate problem with fib-1.1
217
218