Recently, I have been exploring fine-level location tracking using mobile devices. The idea is to have a fairly robust platform for sharing location accurate within metres, and seconds.

I’ve been using Google Maps on my Blackberry for months, and was always pretty impressed by its GPS integration, so the first port-of-call was to enable its native location tracking; Google Latitude. In a nutshell, Google Latitude allows you to “see your friends’ locations and share yours with them”, and naturally gives great Google Maps integrated visualization.

google latitude

Sadly though, Latitude running on my Blackberry Bold does not update often enough for my use – only about once every 7 minutes.

In searching for an alternative location sharing system, I found the wonderful Yahoo FireEagle; an free system that uses an open authentication system called OAuth. FireEagle does what you want it to do; it takes in a bunch of location-specifying formats, disambiguates addresses, and is ready to spit those same formats out again, along with info on their granularity/accuracy.

basically

It effectively lets you decouple your sensor and your location consumer, and the languages you implement them in, and saves you the trouble of creating a clever protocol. There are a bunch of pretty handy-dandy applications for doing phone tracking already available, and the API is available to write your own if you need to, in ActionScript, C#/.NET, C++, J2ME, Java/Android, Javascript, PHP, Perl, Python, and Ruby.

My test platform is a Blackberry Bold, so I ran through the available Apps for BB:

  • BB On Fire unfortunately doesn’t work on Blackberry.
  • BBTrackr is designed to contribute to the OpenCellID database by reporting GPS location along with cell ID (and updates FE location while doing this). It allows manual setting of update interval, which looked like a good option for low-latency updates. It can check location every second, but only updates FE min every minute.
  • MoosTrax is designed for tracking stolen phones. Unfortunately this did not work on the Blackberry, with no obvious errors.
  • Map MyTracks is designed for tracking sports routes. It calls itself “Real-time”, but it does not do < 1 minute tracking.

None of these Apps gave the exact behaviour I was after, so writing my own J2ME App was necessary. Some modifications to the provided source code was necessary for both J2ME implementation, and C#, so I will post guides to getting these both working. Have you had any good or bad experiences working with Yahoo FireEagle? Or do you know an easier (or completely open) alternative? I’d love to hear about it in the comments!