About

RaccoonOnMap is an experiment of how to build a web application with AJAX technology combining different (mobile and Internet) Web services and mixing them together to provide a new service, i.e. a mashup.

How does it work?

In RaccoonOnMap, the mobiles act as a location Web service providers via Raccoon, a mobile web server. The RaccoonOnMap server provides a mashup mixing Web services from mobiles and Google Maps.

All the queries are send to RaccoonOnMap server which will propagate the requests to the registered mobile users. The RaccoonOnMap server queries the location of the mobile with a Python script accessable via Raccoon web server. The mobile returns a location information of its current location. The location information can be either GPS or GSM cell id information.

If the mobile user has bluetooth GPS device, the Python script reads the coordinates from it and return then with the cell id information to the RaccoonOnMap server. The RaccoonOnMap server adds the cell id and the corresponding GPS coordinates to its location database. If the mobile user does not have a GPS device, it will return only the cell id to RaccoonOnMap server, which will then calculate an approximations of the cell coordinates from it's location database.

When the RaccoonOnMap page is loaded it contacts RaccoonOnMap server and fetch the user information. The page refreshes itself every few minutes and therefore fetch the RaccoonOnMap users again from the server. You can force to fetch the information by reloading the RaccoonOnMap page.

All online users and those offline users which have given permission to show their location are marked in the map. Offline users are put where they were last seen. If the user is online the marker turns to red and more information is available. By clicking the marker on the map, the viewer can also send (anonymous) messages and ask the mobile user to take a picture with the mobile phone's camera. The viewer can also 'trace' the user by pressing the "TraceOn" button. The location of the user is then queried every 10th second and the trace of the users movement is drawn to the map.

The location database stores the information of the registered user's id, cell id, GPS coordinates and the time. These values are then used to calculate the approximations of the GSM cells. The calculated cell location approximations, which the RaccoonOnMap service gives out, do not anymore have the information of the user id. The original location database is still preserved and the user id is stored until the registered user wants to remove his/hers account or the RaccoonOnMap service is terminated, in which case all references to individual user's locations are deleted.

The rabbit is a automatic script on the server which returns a location from a local GPS log file.

By default the RaccoonOnMap web page shows all users which have registered to the service. It is also possible to control which user(s) are displayed on the map by giving comma separated list of users as an argument to the page. E.g. http://raccoon.openlaboratory.net/RaccoonOnMap/?users=foobar

Source code

RaccoonOnMap source code is licensed under the Apache License 2.0.

The source code can be downloaded from here.


Timo.Alakoski@nsn.com
Jaakko.Rajaniemi@nsn.com