Updated map installation instructions
[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                   course 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 move smp4.smp from DIE.map to a higher directory, since it currently
41 crashes the program.
42
43 Subdirectories:
44 ===============
45
46 fib-1.0
47         The library for Fibonacci heaps from 
48                 http://resnet.uoregon.edu/~gurney_j/jmpc/fib.html
49         The Fibonacci heaps are used in the routing algorithm.
50
51 graphics
52         The map layout functions.
53         As of now only the gtk_drawing_area is working.
54         We'll eventually move to cairo. 
55
56 gui
57         The user interface. So far there are a lot of files still in
58         the main directory.
59
60 plugins
61         Plugable modules. So far there is only one but we hope to
62         have more in the future.
63         - poi_geodownloads
64                 Display POIs from www.geodownload.com
65                 (depends on mdbtools.sf.net)
66
67
68 Files in src:
69 =============
70
71 block.c:
72         Manages the blocks of the map. Each block of the map is
73         seperated into two sub blocks of half the size.
74
75 command.c
76         Command line interface.
77
78 compass.c
79         Displays the compass on the map.
80
81 coord.c
82         Reads coordinates from the map.
83
84 country.c
85         Lists all available countries and provides funtions to access
86         the corresponding data.
87
88 cursor.c
89         Draws the vehicle possiton on the map.
90
91 data_window.c
92         Displays informations about visible objects.
93
94 destination.c
95         The destination selection dialog.
96
97 display.c
98         Manages the display-list. The graphics driver is called from
99         here to display the map.
100
101 file.c
102         Management of map data files.
103
104 graphics.c
105         Generates the display-list.
106
107 log.c
108         Logs local changes to the map datas. its possible to modify
109         the map without changing the original map data. The modified
110         data are stored in log.txt and reread at program start.
111
112 main.c
113         Guess what?
114
115 map_data.c
116         Manages the differnt map sources. There's an overview map of
117         europe and a detailed map of each country.
118
119 menu.c
120         Callback functions for the gui menu.
121
122 navigation.c
123         Generates directions to a destination ( not jet completed )
124
125 param.c
126         Utility functions for data_window and and popup menu
127
128 phrase.c
129         Assembles directions for the speech guide.
130
131 plugin.c
132         Loads available pugins.
133
134 poly.c
135         Generate display-list for polygons. ( cities, lakes, ... )
136
137 popup.c
138         Popup-menu dialog
139
140 profile.c
141         A simple timer for performance analysis.
142
143 route.c
144         The routing algorithm. ( see below for a more detailed
145         description )
146
147 search.c
148         Functions to search a place ( city, street, ... ) by name
149
150 speech.c
151         Interface to speechd
152
153 street.c
154         Generates a display-list for streets
155
156 street_name.c
157         Reads street names from map datas.
158
159 town.c
160         Generates a display-list for city names.
161
162 transform.c
163
164         Coordinate transformation. The map uses a Mercator projection.
165
166 tree.c
167         Manages search trees.
168
169 util.c
170         Some utility functions for strings
171
172 vehicle.c
173         Calculates the current vehicle possistion and direction.
174         Issues a cursor update if needed.
175
176
177 Routing algorithm
178 =================
179
180 NavIt uses a dykstra algorithm for routing. The routing starts at the
181 destination by assigning a value to each point directly connected to
182 destination point. The value represents the estimated time needed to
183 pass this distance.
184
185 Now the point with the lowest value is choosen using the Fibonacci
186 heap and a value is assigned to connected points whos are
187 unevaluated or whos current value ist greater than the new one.
188
189 The search is repeated until the origin is found.
190
191 Once the origin is reached, all that needs to be done is to follow the
192 points with the lowest values to the destination.
193
194
195
196 Plans:
197 ======
198
199 - use ciaro to draw the map
200
201 - get GPS data from gpsd
202
203 - complete speech output (speech.c, phrase.c)
204
205 - complete directions (navigation.c)
206
207 - investigate problem with fib-1.1
208
209