As described on the Navit home page,
"Navit is a car navigation system with routing engine.
It's modular design is capable of using vector maps of various formats for routing and rendering of the displayed map. It's even possible to use multiple maps at a time.
The GTK+ or SDL user interfaces are designed to work well with touch screen displays. Points of Interest of various formats are displayed on the map.
The current vehicle position is either read from gpsd or directly from NMEA GPS sensors."
Some people say Navit is also a good choice for pedestrian and bicycle navigation.
Thanks to Alessandro, stefan_schmidt, cp15 and all Navit developers I have done a small ("not really working") preview of Navit on Neo1973 at Telemobility Forum 2007. Thanks to GFoss guys to invite me. Tyrael
I got navit set up and configured to the point where it follows me on the map. It doesn't have street names or any other information, just the map and the cursor showing the location and direction. Here's what I did:
wget -O map1.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.5,-122,47.7 wget -O map2.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.5,-122.2,47.7 wget -O map3.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.4,47.3,-122.2,47.5 wget -O map4.osm http://www.openstreetmap.org/api/0.5/map?bbox=-122.2,47.3,-122,47.5
cat *.osm | bin/osm2navit --dedupe-ways > mymap.bin
(for me, the above command doesn't work. This is what works for me:
cat *.osm | osm2navit --dedupe-ways mymap.bin
)
scp mymap.bin root@neo:/home/root/card/map
vi /usr/share/navit/navit.xml <map type="binfile" enabled="yes" data="/home/root/card/map/mymap.bin" />
They are now displayed on OpenMoko using the CVS version of Navit (20071217).
Easier using the CVS version (20071217).
The Route > Destination menu item crashes the software (20071217).
A current fix is to set the LANG variable before calling navit. For example: export LANG=fr_FR.UTF-8; navit
Note that a short syntax (e.g. LANG=fr) would not work.
http://trac.navit-project.org/ticket/51
Navit can speak if you install eSpeak + speech-dispatcher and updates your navit.xml file.
For adventurous people, one way to do this:
* mokoTTS aims to integrate these packages in OM: http://projects.openmoko.org/projects/mokotts/ install espeak, dotconf, and then speech-dispatcher. * change the speech tag in navit.xml: <speech type="cmdline" data="spd-say '%s'" /> or "spd-say -l fr '%s'" for using the French voice for example.
Wurp wrote a little python script to download all OSM maps within a lat/long rectangle. Just copy the script to a file called dlOSM.sh, chmod +x it, and run it like
dlOSM.sh <minimum latitude> <maximum latitude> <minimum longitude> <maximum longitude>
It takes a long time for large maps. I could optimize it some by having it try to get a big section at once, then if it fails, break it into smaller pieces and recurse. I'm not sure when/if I'll get around to that...
dlOSM.sh:
#!/usr/bin/python import os import sys #import math def doIt(cmd): os.system(cmd) def getOsms(basename, minLat, maxLat, minLon, maxLon): '''basename - base name of map, maps are named {basename}{count}.osm minLat - latitude of the west side of the map maxLat - latitude of the east side of the map minLon - longitude of the north side of the map maxLon - longitude of the south side of the map''' wgetCmdTemplate = 'wget -O %s%s.osm http://api.openstreetmap.org/api/0.5/map?bbox=%s,%s,%s,%s' currLat = minLat mapCount = 0 while currLat < maxLat: nextLat = min(currLat + 0.1, maxLat) currLon = minLon while currLon < maxLon: nextLon = min(currLon + 0.1, maxLon) doIt(wgetCmdTemplate % (basename, mapCount, currLon, currLat, nextLon, nextLat)) currLon = nextLon mapCount = mapCount + 1 currLat = nextLat (minLat, maxLat, minLon, maxLon) = map(float, sys.argv[1:]) getOsms('map', minLat, maxLat, minLon, maxLon)