From Navit's Wiki
Revision as of 08:40, 1 March 2012 by Korrosa (talk | contribs) (Android development environment)
Jump to: navigation, search
IRC Korrosa appears on irc with the nick korrosa.
Trac Korrosa appears on trac with the nick korrosa.
en This user is a native speaker of English.

nl Deze gebruiker heeft Nederlands als moedertaal.

fr-1 Cet utilisateur peut contribuer avec un niveau élémentaire de français.

PHP This user programs in PHP
Javascript This user programs in Javascript
Linux This user uses Linux
Windows This user uses Windows

UK Postcode search with Navit

Using an external file containing full postcode centroids in lat/lon, a script can be used to pass the relevant postcode to Navit via dbus. This method was developed on Ubuntu (Linux). Postcodes do not include NI.


  1. Enable dbus in navit.xml
  2. Download the script and postcode file from: (23MB)
  3. In the script, change the path to the postcode file. Set the executable bit of the script, then call the script with the postcode as arguments:
./p2n BA2 4HJ

If the postcode is valid, choose from the option to centre the map to the postcode, route to the postcode or set the postcode as your position.

More Info

The script

The script is written in php, and requires php5-cli to be installed on your system.

sudo apt-get install php5-cli

The script is shown below:

The postcode file

The postcode data comes from Ordnance Survey CodePoint Open data: The original data uses OSGB Northing and Easting to define the postcode centroids, but the data can be processed into a csv file with lat/lon coordinates using the method found here: The result of this method is what's included in the download at

OSM Layout

Mapnik-style rendering

OSD: Speed Camera

Currently a patch at #702.

  • Provides visual and audible warnings of approaching speed cameras.
  • Uses speed camera data from an external file in IGO8 format: files available from Example IGO8 format shown below:
  • Plans to also use speed camera data in OSM


To use the speed_cam OSD type, the following OSD item must be added to navit.xml. This of course assumes that you have patched navit with the patch at #702:

    <osd enabled="yes" type="speed_cam" w="500" h="40"  x="30" y="350" font_size="450" text_color="#FF0000" announce_on="0" label=" ${distance} | ${camera_type} | ${camera_dir} | ${direction} | ${speed_limit}" path="speed_cam_data.txt" />


Most parts are self explanatory:

  • announce_on is set by default to 1 (i.e. this osd item will announce upcoming cameras with a "Look out! Camera!" warning) if this attribute is not set.
  • label can display the following variables. The values in ${STRING} are replaced with the appropriate number or word when running Navit:
    • distance to the camera - ${distance}
    • type of camera - ${camera_type}. See User:Korrosa#Camera Types for possible types:
    • direction in which the camera operates - ${camera_dir}
      • all
      • single direction
      • both directions
    • direction which the camera is facing, in degrees (0-360, i.e. north, east, south, west etc) - ${direction}
    • the active speed limit which the camera may be enforcing - ${speed_limit}

Data Sources

Currently, the speed_cam OSD looks in the following locations for speed camera data, in the following order. Note that the speed_cam OSD will only use the first data source:

  • IGO8 file defined by the path= attribute in the <osd /> tag
  • speedcam.txt IGO8 file in your default navit directory (usually ~/.navit)
  • Speed camera bin mapfile (see User:Korrosa#Creating camera bin mapfiles) defined in the currently active mapset.

Note that if you use one of the first two options, the cameras will not actually appear on the map, but will still be announced. Only by using a binfile will the cameras appear on the map.

Creating camera bin mapfiles

The following steps will enable you to convert an IGO8 speed camera textfile into a Navit bin mapfile. The advantage is reduced resource usage when using a binfile, and that the cameras will appear on the map.

  • Using, convert the IGO8 file into a standard navit textfile. The script reads its input on standard input and outputs navit textfile on stdout. Use in the following manner:
    perl  < speedcam.txt  > speedcam_navit.txt
  • Copy the resulting speedcam_navit.txt to the /navit/maps folder in the source tree.
  • Issue the following command in the maps folder:
    make speedcam_navit.bin
  • Add the just-created speedcam_navit.bin to your active mapset in navit.xml. For example, having moved the binfile to ~/navit/maps:
    <map type="binfile" enabled="yes" data="~/.navit/maps/speedcam_navit.bin"/>

Next time you start Navit the cameras should appear on the map. If they don't try changing the zoom settings of the tec_common item type in your map layout in navit.xml.

Camera Types

  • None
  • Fix
    • Type: Fixed speed enforcement camera
    • Enforces: Speed
    • Description: Probably the most common type of traffic enforcement camera. Usually located on the side of the road, and uses radar to detect vehicle speed. Can take photos from either the front or the rear. Front facing cameras tend to use IR flash guns, instead of traditional bulb flashes, to ensure that the driver does not get blinded.
    • Suggested English name: Fixed.
  • Traffic lamp
    • Type: Traffic light enforcement camera
    • Enforces: Speed and/or red light (unsure)
    • Description: These cameras seem to be located inside (?) traffic lights. It is unknown whether these are for speed, red light or both.
    • Suggested English name: Traffic light.
  • Red detect
    • Type: Red light enforcement camera
    • Enforces: Red light
    • Description: Located close to traffic light controlled junctions, these cameras will detect if a car has run a red light. Usually, these cameras will face down the flow of traffic, thus take a picture from the rear.
    • Suggested English name: Red light.
  • Section
    • Type: Average speed check camera
    • Enforces: Speed
    • Description: In the UK at least, these cameras are used a lot on motorway roadwork sections. CCTV ANPR cameras are located at strategic locations along the works, and take average speed readings of vehicles by reading their number plates. Nightime use is facilitated through the use of IR lamps.
    • Suggested English name: Avg speed
  • Mobile
    • Type: Mobile speed enforcement camera
    • Enforces: Speed
    • Description: There are many types of mobile cameras: common ones are hand-held cameras, either held by an officer from the police car window, or mounted on a tripod. Other types include those mounted on the police car dashboard or rear parcel shelf, or those which point through windows of special speed camera vans (common in the UK)
    • Suggested English name: Mobile
  • Rail
    • Type: Railway level crossing enforcement camera
    • Enforces: barriers/access
    • Description: Used at railway level crossings, to enforce any barriers or warning lights. It's usually an offence to enter the level crossing once you've been warned not to (however far away the train is), hence the cameras.
    • Suggested English name: Level crossing
  • Traffipax(non persistent)
    • Type: Mobile speed enforcement camera
    • Enforces: Speed (?)
    • Description: Note: this is conjecture at the moment. This seems to be a specific type of mobile speed camera.
    • Suggested English name: Mobile


  • Tags shown in order of appearance in the navit.xml shipped with Navit.
  • Bold values denote default values if attributes are not explicitly specified.
  • Value types:
    • int = integer
    • bool = boolean 1 or 0
    • dbl = double


Drafting complete re-write of the OpenStreetMap page


Notable Tickets

  • sort items by distance in the adress search dialog #35
  • It'd be nice to have several waypoints, not only a destination #46
  • do not announce when following a curved way/road #171
  • Incorrect ETA and TR - new method required? #417
  • Change Default Menu that Appears #560

Configuring Navit

Complete re-style of conifguration page

User:Korrosa/Configuring Navit

Android development environment

  • Download Android SDK
  • Unzip to ~/src
cd ~/src/android-sdk-linux
tools/android update sdk --no-ui
  • Download Android NDK
  • Unzip to ~/src
  • Configure environment variables
export ANDROID_NDK=/media/3133d322-340f-4eca-a15e-03685264dc13/home/me/src/android-ndk-r7b && \
export ANDROID_SDK=/media/3133d322-340f-4eca-a15e-03685264dc13/home/me/src/android-sdk-linux && \
export ANDROID_API_LVL=4 && \
export ANDROID_PLATFORM=$ANDROID_NDK/platforms/android-$ANDROID_API_LVL/arch-arm && \
export PATH=$PATH:$ANDROID_NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin:$ANDROID_SDK/tools
  • Start building from Navit folder
cd ~/src/navit-dev/navit-current/navit/
  • Start ./config
./configure \
PKG_CONFIG=arm-linux-androideabi-pkgconfig \
RANLIB=arm-linux-androideabi-ranlib \
AR=arm-linux-androideabi-ar \
CC="arm-linux-androideabi-gcc -L$ANDROID_PLATFORM/usr/lib -L. -I$ANDROID_PLATFORM/usr/include" \
CXX=arm-linux-androideabi-g++ \
--host=arm-eabi-linux_android \
--enable-avoid-float \
--enable-avoid-unaligned \
--enable-cache-size=20971520 \
--enable-svg2png-scaling=8,16,32,48,64,96 \
--enable-svg2png-scaling-nav=59 \
--enable-svg2png-scaling-flag=32 \
--with-xslts=android,plugin_menu,pedestrian_button,pedestrian \
--with-saxon=saxonb-xslt \
--enable-transformation-roll \
--enable-plugin-pedestrian \
--with-android-permissions=CAMERA \