RoadMap is an open source (GPL) program that provides a car navigation for Linux and UNIX. RoadMap project displays a map of the streets, tracks the position provided by a NMEA-compliant GPS receiver, identifies the street matching this GPS position and announces the name of the crossing street at the next intersection. A rudimentary trip feature allows RoadMap to display some basic navigation information (distance to the destination, direction, speed, etc..). Voice messages are generated that duplicate some of the screen information.
It is possible to display a specific area by providing a (complete or incomplete) postal address, the intersection of two streets or an exact position (longitude / latitude).
The map files used by RoadMap are generated from the TIGER files provided by the US Census Bureau, and thus cover the USA only. The RoadMap map format is a binary format that is sensitive to the endianness of the processor. Maps available on this site cover all the USA and have been generated for a little endian processor (such as the Intel Pentium and StrongARM processors).
RoadMap has been designed to be usable on both a desktop or laptop PC, or on a PDA such as the iPAQ from HP (formely from COMPAQ). It can use either the Gtk 1.2 , Gtk 2.0 or QT graphic library for its user interface. The Qt interface supports the Sharp's Zaurus PDA. All these machines share the same endianness and can use the maps provided on this site.
RoadMap is at an early stage of development. At this time there are no routing features implemented yet. The plan for the future is to implement some navigation features similar to those found in commercial street navigation systems. The main limit for implementing routing is the lack of navigation information in the US Census Bureau database (for example one-way street are not indicated). The US Census Bureau has clearly indicated that it does not plan to add these information in the future (the USCB does not need them).
RoadMap uses gpsd for the GPS link and flite (festival lite) for the voice messages. Note that flite can be rebuilt with better voices than the default one (such as a US voice instead of a british one--some may disagree :). See the flite README for more information. Here is an example, courtesy of Scot Wilcoxon:
cd flite make clean # to remove old executable files ./configure --with-vox=cmu_us_kal16
RoadMap comes with its own GPS status screen, which provides an overview of the satellites received and highlights those the GPS has a fix on. This status screen allows for placing the GPS device in a position that optimizes satellite reception, even if that means making the GPS device's screen not accessible.
RoadMap uses a binary file format for representing the maps that is compact enough to allow the storage of many maps on a Compact Flash or MultiMedia card. For example, the map of Los Angeles county takes about 10 Mbytes of flash space. RoadMap comes with a set of tools to convert the US Census bureau data (both the 2000 and 2002 versions) into its own map format. Future versions of the US Census bureau data will be supported as well (usually a 1 or 2 months after the data has been released).
When RoadMap starts, it displays a map of the same area that was displayed on the latest session. Clicking on the map screen triggers a "sign" that displays the name of the street, road or freeway (if any) that is the closest to the mouse hotpoint.
What is new in this release:
- New roadmap icon, designed by fmiser/Philip from the roadmap mailing list. Thanks Philip!!!
- Support for building .rdm data from OpenStreetMap country snapshots, in addition to quadtiles. Preparatory work for allowing navigation using those maps. (Danny Backx)
- New 'V' key-binding to create waypoint from current GPS position.
- Refactored the documentation into more files for easier maintenance. Switched to "txt2tags" (from "aptconvert") for generating online copies of docs.
- Added "advanced style" support, which adds many new line types etc. Currently still disabled via ifdef.
- Allow fatal message popups that occur very early to actually be seen. (Previously we were exiting before they were made visible.
- Added license message to About menu.
- Added ability to suppress on-screen errors entirely. (Joshua Layne)
- Added ability to auto-build makefile dependencies.
- Many source files now support doxygen format function and file headers.
- Added commandline arguments for setting the system and user config, and the icon path.
- RoadGPS console now shows sun and moon positions. (from Morten Bek)
- Tooltips now include key-binding help.
- Added support for OLPC XO laptop, in the form of scripts to bundle RoadMap as an activity.
- Allow suppressing the "Lost Satellite" message with a timeout parameter.
- Resurrection of WinCE support, from Danny Backx (uses minw32ce). Includes GPS autodetection, and CAB files for installation.
- Added several revisions' worth of support for Apple iPhone and iPod, from Morten Bek.
- Remove many redundant repaints, for better performance on slower machines.
- Preserve label, dynamic orientation, and 2D/3D preferences. (Joshua Layne)
- Add timeout which allows map to stop tracking the GPS after a short delay if it's now off-screen. (Useful when you pan away from the GPS, to stop the map from continuing to move.)
- Rationalized the units used for storing and passing altitude.
- Improve handling of GPS devices that come and go.
- Added GPS time to GPS console screen.
- Merged RoadGPS functionality into RoadMap, so separate executable is no longer necessary (though still available).
- "North Up" is now the default mode. It's much more efficient.
- Code can now more easily destroy previously displayed message boxes.
- Can now handle many more satellites, and satellites with bigger ID numbers, in RoadGPS.
- Fixed issue with new fields appearing in gpsd2 protocol sentences. We should now be tolerant of such changes in the future.
- Improved handling of messages that pop up when the GPS reception is poor.
- Added ability to scale sprites, either individually, or all at once.
- Added font size control for RoadGPS.
- config files can now have CR (' ') characters at end of line.
- Added ability to disable progress bar display, and configure its delay.
- Improved efficiency of map paths specified with "/..." -- the trees are now only walked when needed.
- Make the screen much more responsive when lengthy rendering is in progress. User "type-ahead" (or "mouse-ahead") can now interrupt rendering.
- Added a progress bar to show expected duration of lengthy repaints.
- Small optimizations to how often the screen is refreshed.
- New support for "overrides.mk" file allows build preferences to be specified without editing any distributed files.
- New "--user" and "--icons" command-line arguments to accompany "--config" and "--maps". If specified, the values of the "--icons" and the "--config" options are passed to roadgps when it is started, so that it can find its config and icons in the same places.
- Modify what what focus is saved on shutdown -- if the focus is GPS, then preserve it, otherwise, "hold" the screen at the current center, and preserve that.
- New key bindings, for full-screen toggle (F11) and to handle the special keys on the XO (OLPC) laptop.
- Fixed problems resulting when flite not installed. Initial localization support, ported from editor branch by Alessandro Briosi. (*)
- Reorder latitude/longitude fields in Find-->Position dialog, to better match common practice. Added in-dialog syntax help as well.
- Properly render fully-shaped TIGER polygons. Polygons with holes, and overlapping polygons, may still not render correctly.
- Screenshots (where supported) are now named with date/time.
- Various QT/QT4/QPE4 fixes from Junqian Gordon Xu and Alessandro Briosi.
- Added support for building .rdm files from OpenStreetMap data. See (temporary) README.osm for usage details.
- Validate value of AGG selection during build. Fix misleading text in README regarding AGG selection.
- Rearrange options processing slightly so standard toolkit options can be discovered (e.g. "-sync").
- Fix bug which flipped sign of some lat/lon values between 0 and -1 degrees.
- Improved aesthetic in roadgps, from Alessandr Briosi.
- Added ability to add text (with optional outline box) to a sprite, either directly, or via a screen object that can provide dynamic text values.
- Added minimal "mapinfo" action, which reports dimensions and location of current map view. (Help-->Map Parameters)
- Support for overlay rendering of externally-provided polygon objects. (Pascal Martin).
- Support for VII location protocol. (Pascal Martin)