Google Latitude + GoogleCar


Everyone has heard about Latitude by now. “See your friends’ locations and status messages and share yours with them.”

Ok, there’s a mountain of privacy issues surrounding it… Simple solution — turn it off. I have no intention to broadcast my location 24 hours a day. That’s just asking for trouble. But it could be very handy when you actually want your location to be known.

Anyway – what I’m interested in is how it finds your location?

Most smart phones have some sort of Location API – Here’s an example using the Symbian Location Acquisition API. Java and iPhone have similar API calls.

The other side of the API presumably uses whatever it can to get a location. GPS (possibly with the help of an A-GPS server) or some form of mobile network based “triangulation” seem to be popular.

But what if your phone doesn’t have a GPS receiver? Or you’re using the Latitude iGoogle app on your laptop? Or a desktop?

This is where things get interesting. The Latitude iGoogle app gets your location through the Google Gears GeolocationAPI which according to google, uses “your computer’s WiFi location”. What the hell is your “WiFi location”?

Well, if you can build up a big enough database of WiFi access point MAC addresses and associate each with a location, you can perform a “reverse” query to associate an AP to a location! viola! Each AP should have a 100m (or so) transmission radius, so if there are multiple APs you can “overlay” these transmission circles to get an even more accurate position.

But this theory only works if you have a lot of entries in your database and it’s regularly updated (as people add/remove/move their personal APs). How do you do this? My ideas:

  1. The Google street view car scans for WiFi signals as it drives around
  2. Every Laitude program updates the Google database while it is being used

The Street view car visits every street which gives Google a good starting point for the database. As soon as possible after this they get users to “give Latitude a try” which corrects the database with any changes since the Google car went past, making it more accurate as more users come on. To back up this Google car collection claim, I’m going to use a quote from the official google blog “Today, Latitude is available in 27 countries, and we hope to add more soon.”. How many countries do you think Google has Street View imagery for or is currently capturing? About 27 perhaps?

It’s all very clever if you ask me.

Just don’t tell anyone what Virtual Observer is currently doing with rubbish trucks…… 😉

, , , , ,

  1. #1 by Rob on February 20, 2009 - 10:39 am

    Wow I never knew about Latitude, that’s kind of cool.

    That’s pretty nuts about the Wifi Location though. Would I be correct in understanding, that because my computer is connected by cable to a Wifi ADSL router, and the google car has driven past my house and detected that there is a wireless network with the MAC address of my router (can you actually get MAC address of the router that is broadcasting a wireless network?) that my current position at home can be automatically detected?

    Thats incredible. I wonder if the streetmaps cars had been detecting that all aloong. Also, I wonder what other location based information they are storing?

    Google are a very clever, but very scary company haha

  2. #2 by wilson on February 20, 2009 - 11:06 am

    The WiFi interface on your router will have its own MAC address. I just looked at my laptop WiFi properties dialog thingy (I’m using the Intel one rather than the default windows one) and it shows the mac address of every AP it can see.

    Apparently Google also take a 3d snapshot of the scene. Time to build a virtual world!

    Actually – I suppose you could import this google 3D “world” (haha. I suppose you can’t really call it a virtual world??) into your favorite game. I could finally satisfy that urge to drive a tank down St Georges tce during peak hour! 😉

  3. #3 by wilson on February 27, 2009 - 10:35 am

    Of course – everything about WiFi APs in this post also applied to mobile “cell towers”.

    Min Han just sent through this great link. It goes into a lot of detail (and example code) how Google Maps uses the cell tower ID to get your location.

    This has been happening for a while now. I remember seeing a Sensis service (They’re owned by Telstra – Australia’s part government owned telecommunications provider) which does exactly this.

  4. #4 by wilson on May 25, 2010 - 10:20 am

    I just posted an update on this here.

    It’s suddenly causing quite a fuss!

(will not be published)