OpenStreetMap is a free editable map of the whole world. It is made by people like you. OpenStreetMap allows you to view, edit and use geographical data in a collaborative way from anywhere on Earth. Maps from OpenStreetMap can be used in Navit.
- 1 Quick Start
- 2 Pre-Processed Maps
- 3 Processing OSM Maps Yourself
- 4 Tips
- 5 Problems with OSM and navit or navigation in general
- Go to Navit Planet Extractor (http://maps.navit-project.org/)
- Zoom in and select the area that you are interested in. Use the 'Map Controls' on the right to switch between 'Navigation' and 'Select' modes.
- Hit Get Map!
- Move the downloaded map to the directory of your choice, and add it to the active mapset in navit.xml with a line similar to the following:
<mapset> <map type="binfile" enabled="yes" data="/path/to/your/map/osm_bbox.bin" /> </mapset>
A variety of sources provide pre-processed OSM maps for Navit.
The Navit Planet Extractor allows you to select and download a custom region on the map. Some pre-defined areas are linked below:
Maintained by Others
As these maps sources are not maintained by the Navit team, they may be using an old or incompatible version of maptool to convert the OSM data to Navit binfiles. If you have an issue with theses maps, please try using a map from our Planet Extractor before reporting a bug.
Cloudmade process the OSM planet and provide Navit-compatible binfiles for each country. Recent reports suggest that cloudmade maps are not compatible with the latest svn builds of Navit. Please use another source for maps. A ticket has been raised at cloudmade. 09:01, 15 January 2011 (UTC)
Navit-compatible OSM binfiles of Austria, Belgium, Germany, Luxembourg and The Netherlands. The German extracts are divided by state. Extracts of complete continents also available. Extracts are updated frequently.
Navit-compatible OSM binfiles of Austria, France, Germany, Great Britain, The Netherlands, Poland, Slovakia, Sweden and Switzerland. Note that all countries except Germany have not been updated since 06/08/2011.
Navit-compatible OSM binfiles of Austria, Germany, Liechtenstein, Switzerland, DACH and Benelux (Note: since January 2012 all maps are created with a patch for multipolygon-lakes. So, the lakes are all visible in these maps).
Add OSM map to your mapset
Move the downloaded map to the directory of your choice, and add it to the active mapset in navit.xml with a line similar to the following:
<mapset> <map type="binfile" enabled="yes" data="/path/to/your/map/my_downloaded_map.bin" /> </mapset>
Processing OSM Maps Yourself
You can create your own Navit binfiles from OSM data very easily using maptool, the conversion program which installs alongside Navit. maptool can process both OpenStreetMap XML Data files (*.osm files) and OpenStreetMap Protobuf Data files (*.pbf files) Follow these steps to process your own maps.
Download your own OSM data
OSM data can be downloaded from a variety of sources. OpenStreetMap XML Data files are regular textfiles, easily editable in any text editor. OpenStreetMap Protobuf Data files are binary files, which take up less space (so are quicker to download and process) but are not editable.
- OpenStreetMap XML Data
- OpenStreetMap (visual) allows you to select a rectangular area and download the selection as OpenStreetMap XML Data. Note that OpenStreetMap only allows you to export small areas for performance reasons (i.e. it is unlikely that you'll be able to download an entire country using this export facility).
- Geofabrik provides pre-processed OpenStreetMap XML Data files of almost all countries, and all continents. This method is probably the easiest way of downloading OpenStreetMap XML Data for an entire country or continent. Note that the OSM files are bzipped for download performance - there is no need to unzip after download, as you'll see.
- planet.openstreetmap.org hosts the complete data set (the whole world). You can use Osmosis to cut it into smaller chunks.
- OpenStreetMap (API) The API allows to get the data of a specific bounding box, so that download managers can be used. For example:
wget -O map.osm "http://xapi.openstreetmap.org/api/0.6/map?bbox=11.4,48.7,11.6,48.9"
- OpenStreetMap Protobuf Data
- Geofabrik provides pre-processed OpenStreetMap Protobuf Data files of almost all countries, and all continents.
The following examples assume that you have installed Navit system-wide. If this is not the case, you will need to provide an absolute path to the maptool executable, which is in the navit/maptool folder.
cat my_OSM_map.osm | maptool my_Navit_map.bin
maptool -i my_OSM_map.osm my_Navit_map.bin
Or for multiple OSM data files use the --dedupe-ways option to avoid duplication of way data if a way occurs multiple times in the OSM maps.
cat my_OSM_map1.osm my_OSM_map2.osm my_OSM_map3.osm | maptool --dedupe-ways my_Navit_map.bin
bzcat my_OSM_map.osm.bz2 | maptool my_Navit_map.bin
Functionality only available in SVN versions of Navit later than r3871, which does not include the official Navit release 0.2.0
maptool --protobuf -i my_OSM_map.osm.pbf my_Navit_map.bin
Add OSM map to your mapset
Move the processed map to the directory of your choice, and add it to the active mapset in navit.xml with a line similar to the following:
<mapset> <map type="binfile" enabled="yes" data="/path/to/your/map/my_Navit_map.bin" /> </mapset>
Special Case: Processing the Planet
In case you want the whole planet.osm (11GB in September 2010), and you can't or don't want to fetch it from the previous link, it is even possible to process planet.osm. It will take about 7 hours , requires > 1GB of main memory and about 30 GB disk space for result and temp files - planet.bin is currently (as of September 2010) 3.0GB:
bzcat planet.osm.bz2 | maptool my_Navit_map.bin
The OpenStreetMap wiki Planet.osm page lists mirrors where Planet.osm can be downloaded. There are also downloads of smaller areas such as the UK and parts of Europe. These smaller excerpts are a lot quicker to download and process.
- To enable a map you have downloaded refer adding OSM map to navit.xml
- If you don't see any map data in Navit (assuming your map is properly specified in navit.xml) using the Internal GUI click anywhere on the screen to bring up the menu. Click on "Actions" and then "Town". Type in the name of a town that should be within your map data. Select your town from the list that appears. This will bring up a sub-menu where you can click "View On Map". Note that if you have a GPS receiver you can also just wait till you get a satellite lock.
- To increase performance of Navit use maps for only the country or state you are interested in.
- To avoid changing navit.xml if you update your maps and the maps have different file names use the wildcard (*.bin) in your navit.xml file. For example:
<map type="binfile" enabled="yes" data="/media/mmc2/maps/*.bin"/>
- If you want to learn more about the format used in conversion, for example to write a tool to extract a specific area, please have a look at Navit's binary map driver.
Search doesn't work in most countries
This is because maptool only knows about a few is_in tags. To fix this, look for a reliable is_in tag in the towns in your country. If there is none, contact us, we have some scripts which can help adding one in this case. Then add the tag (at most 3 per country) to this page. Unfortunately using the country border for detecting the membership of a town also isn't an option, because the boundaries are usually not closed or wrong.
OK, so the country you're searching is listed in the table. Search probably will work. But be aware there are some quirks.
First, there is no "Search" button--searches will begin automatically as you fill in the gtk dialogue. Note there are minimum string length requirements. For instance the Town search only "activates" after 3 characters are typed, to prevent a huge number of results (which would take a lot of CPU time to find and display). If you really need to search for two character towns, you'll have to modify the navit source code.
Also, Navit's search process is hierarchical. Meaning you must search for and select a valid Country, then select a Town, then select a Street. Right now, zipcode, district, and street number (?) searches are unimplemented; only Country, Town, and Street actually work (as of r1175). Furthermore, there is no US State or County information; when searching for a US town, you may get hits from all over the US with planet.bin, and unfortunately, the states that each hit is in are not displayed. You basically have to use the Map button to examine them one-by-one, until you find the one you want (or, only travel to towns with unique names).
The dialogue sometimes moves the cursor between text boxes automatically. This can be pretty annoying.
Finally, there are a couple ways to crash (segfault) navit inside the search dialogue.
The developers are aware of these issues and plan to improve behaviour (this will happen faster if you send a patch!)
Routes go through a city instead around of it
This is because OSM doesn't provide any information whether a street is rural (can be driven with higher speeds) or not. In that case all roads are considered as in a city, which leads to using shorter routes through a city. The issue is in the OSM data, not Navit routing. You may want to fix the OSM data, in particular the speed limits (tag e.g. maxspeed=50) for inner-city roads, which are e.g. 50 km/h even when they are roads of higher order.
Search for my town works, but I can't find my street
This is because OSM doesn't provide reliable information which town a street belongs to. We are currently estimating the area of a town (depending on the town type) and are using all streets which fall in this area. This works well most of the time, but of course is no 100% match. But the official OSM approach "A street belongs to its nearest town/village etc." doesn't provide always correct results also and is harder to code.
These are objects in OSM which have no representation in navit. This includes ways which have no tag and therefore are not visible in osmarender/mapnik maps. If you want to have tagged objects included in navit add an entry to the discussion what tags are used for this object and what item from Item_def.h should be used (suggest a new one together with how it should be rendered if no appropriate one exists).