Om 2008 Locations

From Openmoko

(Redirected from Om2008.8 Locations)
Jump to: navigation, search



Locations (codenamed Splinter) is a location sharing application based on GPS and SMS. It uses OpenStreetMap as its map source and allows users to manage and share saved locations.

Om locations4.png


In addition to downloading map images from the OSM server, Locations also supports local maps, which can be downloaded through the Installer. You can also create your own maps if your city is not available. For more information, refer to the #Create Your Own Maps section below. The map data is copyright and available through a Creative Commons Licence, which can be quickly described as "CCbySA"


Use the MAP view to manage Tags with options to save, edit or send. MAP view also allows users to browse maps with zoom in and zoom out for accurate locating. If you get lost while browsing, simply tap the REFRESH button to return to your current position. It's that easy.


LIST view is a a centralized place to view all of your Tags. The LIST view is a combination of your own saved Tags and Tags received by friends. Selecting a Tag takes you to the exact position of the Tag in the MAP view.

Save & Send Tags

Once you are connected to GPS, saving and sending tags to friends is fun and simple.

  • Save a Tag
  1. Press the touch me bubble that hovers above your current position.
  2. After the message box appears, tap directly into the text boxes under Edit Title and Edit Messages to add your Tag title or message.
  3. After entering your title or message, press SAVE, at which point your newly created Tag will appear in both MAP and LIST views.
  4. In the MAP view, tapping on the text of your Tag provides further options to edit or send your your Tag to a friend.
  • Send a Tag
  1. In the MAP view, tap on the text of your Tag, launching the edit * send bubble.
  2. Pressing on send will launch the Send a Tag message box
  3. Tap directly within the text boxes to edit your Tag before sending, or press Send and your Tag will be on its way.


A map (.eet) is a collection of tiles. You can install maps through Installer or create your own maps. When looking for tiles to use, Locations will first try downloaded (cached) tiles. If it fails, it will look for them in the available maps. If it still fails, it will ask diversity-daemon to download, and cache them. The following subsections provide instructions and tricks you can apply.


Maps can be installed from Installer.

choose map
install map

Create Your Own Maps

NOTE: om-locations-map-pack comes with Om2008.9 (and before) eats lots of memory to pack tiles and fails easily on NEO.

Locations comes with a tool called om-locations-map-pack. It can be used to pack tile images downloaded from the OSM server into a map package:

om-locations-map-pack -v /tmp/diversity-maps my_map.eet

Place my_map.eet in either of the directories


and Locations will find it automatically.

Share Maps

To share maps for other Neo users to install, see directions on how to add a package to Openmoko Repository.

Use SD Card for Tile Storage (Om2008.9)

By default, tiles downloaded from the OSM server are stored in /tmp/diversity-maps. They disappear after rebooting. This default path can be changed to, for example, use SD card by adding/editing one line

tile_path = /media/card

to ~/.om-locations/config/om-locations.cfg.

You can make tangoGPS use the same tile cache as om-locations by editing the option. Change the cache on the config tab of tangoGPS to read /media/card/osm/. after that, any maps downloaded with om-locations will show up in tangoGPS, and vise versa.

Download Tiles of a Region (Om2008.9)

You can download tiles of a region by specifying -d option in om-locations-map-pack. The usage is

om-locations-map-pack -d version,source,min_level,max_level,lon,lat,width,height <tile-path>

version can be any integer and source should be "osm".

The easiest way to generate the description is through Description Generator. But you can also specify it manually. For example, to download tiles of Taipei and store them on the SD card, one can

om-locations-map-pack -d `date "+%Y%m%d"`,osm,5,16,121.5,25.0,0.1,0.1 /media/card

In this example, a region of longitude between 121.5 to 121.6 and of latitude bwtween 25.0 to 25.1 is specified. Tiles in this region and of levels from 5 to 16 are downloaded to /media/card. By instructing Locations to use /media/card as its tile path, one could pre-download tiles of any region and have Locations use them.

It is furthur possible to compress our map directory by eliminating white tiles and making it sparse. The display shown by TangoGPS is anyway white, so we can avoid some wasteful tiles. The space saving it gives us is nearly 40%.

Let us say that the directory that holds the map tiles is OSM/ , then we can run this script on OSM/ as:

sparsemap /media/card/OSM/

The sparsemap script is:


[ -z $mapdir ] && mapdir=.
[ ! -d $mapdir ] && echo "$mapdir is not a directory." && exit 1

echo $sparse_png | base64 -d > $SRCFILE

echo -n >$log

cd $mapdir

find . -type f -size 103c | while read pngfile ; do
  if diff $SRCFILE $pngfile 2>&1 >/dev/null ; then
    echo $pngfile >> $log
    rm $pngfile

cd $CWD

bzip2 --best $log && log=/tmp/sparse.lst.bz2
mv $log $mapdir

rm -f $SRCFILE


Locations relies on diversity-daemon to communicate with the GPS device. By default, the GPS device (/dev/ttySAC1) is opened directly. However, it is possible to configure diversity-daemon to talk to gpsd.

Using gpsd (git only)

After gpsd is installed and started, it listens on port 2947 by default. To make diversity-daemon talk to gpsd, one could add/change:

gps_device =

to ~/.om-locations/config/om-locations.cfg.

Logging (git only)

It is possible to turn on GPS logging by adding

gps_log = /home/root/GPSLogs

in ~/.om-locations/config/om-locations.cfg.


Locations is written in C and EFL. It talks to diversity-daemon through D-Bus to, for example, send tags and download tiles.

To compile diversity-daemon,

$ svn checkout svn://
$ cd diversity-daemon
$ ./
$ ./configure --enable-session-bus
$ make
$ sudo make install

Please ensure that at least Control and OpenStreetMap backends are enabled. If not, check that you have libdbus-glib-1-dev and libcurl4-gnutls-dev (on debian) or similar packages installed.

To compile Locations,

$ git clone git://
$ cd om-locations
$ ./
$ make
$ sudo make install

Locations depends directly on recent versions of eet, evas, ecore, edje, and etk from EFL. Please consult its website for instructions to build them.

Using Toolchain

NOTE: More tests needed on a clean machine. At least, edje_cc is missing in this setup.

After the recent release of the Toolchain, it is possible to cross-compile Locations by following some simple steps.

First, one need to get the Toolchain,

$ wget    # for x86
$ wget  # for x86_64
$ tar -C /tmp -jxf openmoko-i686-arm-linux-gnueabi-toolchain.tar.bz2
$ sudo mv /tmp/usr/local/openmoko /usr/local

and install the dependencies,

$ . /usr/local/openmoko/arm/environment-setup
$ opkg-target install libdbus-glib-1-dev curl-dev            # requirements for diversity-daemon
$ opkg-target install libetk-dev edbus-dev libts-dev         # requirements for om-locations

You are ready to compile diversity-daemon and om-locations now. To compile diversity-daemon,

$ . /usr/local/openmoko/arm/environment-setup
$ svn checkout svn://
$ cd diversity-daemon
$ ./
$ ./configure --host=arm-angstrom-linux-gnueabi --enable-session-bus
$ make

The binary is available at src/diversity-daemon. To compile om-locations,

$ . /usr/local/openmoko/arm/environment-setup
$ git clone git://
$ cd om-locations
$ ./ --host=arm-angstrom-linux-gnueabi
$ make

The binary and theme could be found at src/om-locations and data/themes/default.edj.


Locations uses Trac for bug tracking. When report bugs, please choose category Locations so that they go to the developers directly. There is no mailing list specific for Locations. Please use for discussion.


Locations will be I18N-aware (support multi-languages) in the next release. To have your language(s) in the supported list, one can take this POT file and upload your translation to Trac by creating a new ticket.


[1] git repository of Locations -;a=summary

[2] Diversity project -

[3] Assassin project -

[4] OpenStreetMap -

Main.png Om 2008.8 Locations

Locations (codenamed Splinter) is a location sharing application based on GPS and SMS.

Homepage: [ ]
Tested on: Om 2008.8

Personal tools