Navit is highly modular and customizable. This page aims to point out the most common options which a first-time user may want to change - power users may want to consult the full list of options.
It is also possible to edit the navit.xml file for your Android device under Windows and Linux (Debian/Ubuntu derivates) with a third party application called NavitConfigurator.

Setting up Navit is done by editing a configuration file called "navit.xml".Editing this file in a text editor is simple, it's just a plain text XML file, that can be edited with any editor. Just remember to turn off 'save UTF8 byte mark' in Preferences or navit may complain very much on the first byte of the file.
The file is splitted into sections within a hierarchy:

Display

Vehicle

A number of vehicles can be defined within Navit, depending upon the device and/or operating system in use. Vehicle profiles for routing (eg: car, pedestrian, bicycle...) are also completely configurable.

Initial map position

On Navit's very first startup, it needs a center to look at on the map. By default this is set to Munich in Germany, which is conveniently covered by the sample map created on installation.

center="11.5666 48.1333"

Coordinates can be written in different formats; see Coordinate_format for the full list.
To determine a specific latitude and longitude for your location you can use http://itouchmap.com/latlong.html.
Usually, changing the "center" setting is not necessary, since it is only used during the first start.
On subsequent starts, Navit will remember the last map position (stored in "center.txt") and ignore the "center" setting.

When Navit starts, it will display the map at a pre-defined zoom. The default zoom level is 256. The lower the value, the closer you will be zoomed in.

Note that once Navit has started, the zoom level can be altered using OSD or menu items.

Use the orientation attribute to orient the map in either the direction of travel, or oriented North. .To orient the map in the direction of travel:

orientation="-1"

or to orient North:

orientation="0"

Orienting the map North whilst in 3D mode will provide visually confusing results, and is not recommended. When in 3D mode, it's best to have the map oriented in the direction of travel.

Autozoom

Navit has the ability to autozoom the map in or out dependent upon your speed.

autozoom_active="1"

To de-activate autozoom:

autozoom_active="0"

3D pitch

Navit has the capability to display either a 2D map (bird's eye perspective) or a 3D map (some amount of tilt looking to the horizon). Navit's default configuration is to startup in the 2D perspective but it is possible to specify that Navit start with a 3D perspective. The amount of tilt is specified by setting the value of pitch.

The pitch value defines default camera tilting, with a value from 0 to 359. Note that usable values lie between 0 and 90 where 0 is bird's eye perspective looking down and 90 is human perspective looking forward. Also note that values closer to 90 will slow down map drawing, because the line of sight gets longer and longer and more objects are seen.

For example, the following added to the navit tag will force Navit to start with a pitch of 30 degrees:

pitch="30"

Imperial units

By default, Navit use the metric system of measurements when displaying or announcing distances, speeds etc. However, you can configure Navit to display and announce these values in imperial units. Simply add an imperial attribute to the Navit tag, and set its value to 1, as shown below:

imperial="1"

Speeds should now be displayed in units of miles-per-hour, whilst distances are converted to miles (large distances) and feet (small distances).

Display Options

The Navit display is highly customisable and consists of the following components

Graphics Driver

It has been suggested that this section be split into a new page (Discuss)

Different technologies can be used, to let Navit draw it's visual components. Not all might be available at your specific system

The current list of available graphics drivers:

android, for the Android port

cocoa, for the iPhone port

gtk_drawing_area, usually most appropriate on Linux desktop systems

sdl, render inside an X window, or direct to the Linux framebuffer, with min dependencies on external libraries.

win32 - useable with gtk or internal GUIs for Windows systems only.

Experimental/less maintained drivers:

qt_qpainter, render inside X window or on top of Qt Palmtop Environment.

opengl, rendering via OpenGL

gtk_gl_ext, rendering via OpenGL using GTK+ OpenGL extension

gd, rendering using the GD Graphics Library

They can be activated and configured as following:

<graphicstype="gtk_drawing_area"/>

As mentioned, it's usually best to leave this as whatever the default is within your navit.xml, and only mess around with it if you know what you are doing, or have been told to by one of the developers.

Graphical User Interface

You can now choose which type of GUI you would like to use with Navit. Not all GUIs work with all Graphics drivers

Generic GUI Options

There are some options available for the gui tag which are used by all the GUI types. These include:

fullscreen - Enables Navit to start in fullscreen mode.

pitch - The pitch value to pitch the map to when selecting 3D mode from the menus.

dimensions - w="1024" h="600"

The following example uses the internal GUI, and starts Navit up in fullscreen mode, and will pitch the map to 35 degrees when 3D mode is selected from the menu. Note that to start Navit in 3D mode by default, change the pitch value in the navit tag:

<guitype="internal"enabled="yes"fullscreen="1"pitch="35">

Internal GUI

The first GUI is embedded in Navit core and is primarily aimed at touchscreen devices, or those devices with small screens (such as netbooks). However, this GUI also works very well on desktops and laptops.

<guitype="internal"enabled="yes">

Options

A number of options specific to the internal GUI are available. These include:

font_size - Base text size to use within the internal menu.

icon_xs - The size that extra-small style icons should be scaled to (e.g. country flag on town search).

icon_s - The size that small style icons should be scaled to (e.g. icons of internal GUI toolbar).

icon_l - The size that large style icons should be scaled to (e.g. icons of internal GUI menu).

menu_on_map_click - Toggles the ability to bring up the menu screen when clicking on the map. See the internal GUI page for more information.

On Screen Display

Vehicle Options

It's important to understand the separate but linked Navit concepts of a vehicle and vehicleprofile element. A vehicle defines the source of positional data (suchas a USB GPS device), and how to present that data to the user on the map, where the vehicleprofile defines all aspects of routing.

A simple vehicle definition looks like this:

<vehiclename="My"enabled="yes"source="file://dev/ttyS0"/ active="1"/>

Here some of the available options:

active: If set to 1, makes the vehicle the default active one. Routing, view centering and map redraw would be applied to this one by default.

enabled: If set to yes, Navit connects to the vehicle data source and shows the vehicle on the map.

Vehicleprofile

Profiles to add in the navit.xml
Defines the behaviour of the routing and are usually linked to a vehicle section, so switching the "vehicle" (type of mobility) from within Navit, routing also will change its behaviour. This way, it is possible to include steps for pedestrian routing, but to exclude it for bike, horse or car routing. Within the vehicleprofile section, roadprofile sections are used to describe the routing behaviour of different roads. Here's a very basic example:

Only the vehicle profile names "car", "bike" and "pedestrian" are translated in the GUI.

Maps Options

Navit can read various map formats, and can even show multiple maps at a time. This is done by defining a mapset. Each mapset can have one or more maps. Using the GTK GUI, you can enable or disable specific maps at runtime.

Layout Options

Layouts

A layout defines how to render a map. Layouts are fully customisable, from the road colours and widths to size and type of icons to display for specific POIs. The layout is also where the cursor (i.e. the shape which shows where you are) is defined.
A number of user-generated layouts and cursor definitions are available at Layout.

Defining layers

A layout consist of one cursor and one or more layers which are each a set of rules on how and when to draw certain items. Those rules are called itemgra. The layers are rendered one by one in the order they appear in the navit.xml file, as are the items in each layer. If you can't see an item make sure there is not another one hiding it. If your item is hidden, you can move your item further down in the layout section of the file.

The directory sample_dir should contain audio files. sample_suffix is the common file type suffix of those files. The names of the files (without the suffix) must correspond to the text they contain. For each text it wants to speak, Navit will look for one or more sample files with corresponding names (ignoring upper/lower case). So for "turn right in 300 meters" you could use turn.wav, right.wav, in.wav, 300.wav, meters.wav. Navit will prefer files that contain multiple words: If file "turn right.wav" is present, it will be used even if you have turn.wav and right.wav.

Note that Navit internally handles all text in UTF-8 encoding. If you use a file system where file names are not encoded with UTF-8 (such as Windows), Navit will only find files for ASCII text. If you use a language that uses non-ASCII characters, the file name must be the percent encoding of the UTF-8 representation of the text. For example the filename for "süd" would be "s%c3%bcd.wav" (because "ü" is encoded as C3BC in UTF-8). For this feature to work, you must set flags to 1.

data is the program that can be used to play the sample files. You should specify the program name along with any necessary parameters. The placeholder "%s" will be replaced with the file(s) to be played. All files required for a text will be passed in one go, so the program will need to support playing multiple files. Note that the %s should not be quoted; the text is not passed through a shell.

Note that if any file that is needed to compose the complete phrase is missing then Navit will be silent. In that case a warning will be printed. Unfortunately, there is no complete list of the samples required. However, all the navigation text is contained in the translation files (.po files), so you can get a rough list.

By default Navit is trying to announce street names. To disable this feature you can set vocabulary_name and vocabulary_name_systematic to 0 in the speech tag which will specify that the speech synthesizer isn't capable of speaking names. Also there is vocabulary_distances which you can set to 0 so only the minimum set of 1,2,3,4,5,10,25,50,75,100,150,200,250,300,400,500,750 as numbers is used.

espeak

<speech type="cmdline" data="espeak -s 150 -v english_rp %s"/>

Will use espeak instead, for those who want Navit to speak to them in English, at 150 words per minute. The %s is filled in by Navit when sent to the speech synthesis software (with something like "Turn left" or whatever is appropriate at the time). If you need more features, you should use an external wrapper script which can contain anything supported by your shell (see Translations).

festival

flite

Mbrola

Android

<speechtype="android"cps="15"/>

Start up in silent mode

To have Navit start up in silent mode, insert active="0" somewhere in your speech tag. For example on Android:

<speechtype="android"cps="15"active="0"/>

In this case, you should place a toggle_announcer item in your OSD configuration, or add a menu item so you can enable speech output when you need it.

Debugging

Bookmarks

Splitting navit.xml

Navit has support for a small subset of XInclude / XPath for including parts of external XML files. Supported is a tag like

<xi:includehref="some_file"xpointer="xpointer_stuff"/>

You can leave out either href (xi:include refers to the same file it is in then) or xpointer (xi:include then refers the complete file), but not both. The href attribute refers to a file relative to the current directory. It is suggested to use the complete path, such as /home/root/.navit/navit-vehicles.xml.

Use this as your $HOME/.navit/navit.xml and you will get everything under <config>..</config> except <navit>..</navit> (first xi:include), plus <navit> as specified plus everything from navit within config, except the vehicle definitions (second xi:include).