Skyhook: how iPhone OS 3.0 delivers location services

by alec on June 26, 2009

Many folks assume that iPhone’s location services are GPS based.  In fact, they’re not.  They use a complex amalgam of WiFi hotspot location, cell tower triangulation and GPS provided by Skyhook Wireless.  GPS service, by itself, is vulnerable to overhead obstructions, and can take as long as 5 minutes to obtain a fix.  However, once fixed, GPS is accurate to within 10 metres, or 30 feet.  So-called assisted GPS (AGPS), is a hybrid in which GPS is augmented with cell tower information.  AGPS can obtain a fix with accuracy dependent on the density of cell towers, very quickly.  However, in countries like Canada, where long distance 850Mhz signals are common, AGPS is only accurate to perhaps 3,000 feet.  Nevertheless, it’s common for mobile location applications to use AGPS to first establish a crude fix, and then zoom in as the more accurate GPS fix is established.

Skyhook’s innovation is to augment that with WiFi hotspot locations.  Why WiFi? It can be wonderfully accurate, to within 30 to 60 feet, or 10 to 20m which is roughly the same as GPS.  WiFi can establish a fix within less than a second.  And, WiFi is not vulnerable to overhead obstructions, so it can be used indoors. 

Skyhook’s technology relies on a database of WiFi access points in over 2,000 cities (and growing).  Much like Google, they use vehicles to drive cities, and using a laptop in the vehicle, they chart the location of WiFi access points.  In addition, on iPhone as users use the mapping application, new locations and newly discovered WiFi access points are automatically added to the database.  It’s a kind of automated crowdsourcing, based on usage.

Here’s the coverage map for the Ottawa area, for example.  You can see that there are few unmapped places, except on the outskirts of the city. Theoretically, very accurate fixes, indoors and out, should be available from most parts of Ottawa.

image

So, how well does it work?

On iPhone 3G, running OS 2.x, the mapping software would routinely place my office (on the left side of the map, pointed to by the red and yellow arrow) in the middle of the Ottawa airport west runway (shown on the right side of the map, with a similar pointer). That’s a distance of approximately 1km, and not very useful.  To be fair, it was more accurate standing outside, since a GPS fix would eventually be found.

image

Running OS 3.0, however, produced this result.  My actual office is not, obviously, in the parking lot. It’s located at the marker.  iPhone has located me perhaps 50 feet from the actual location.  That’s a significant improvement from a kilometre!

image

Depending on which access point the software fixes, the location can vary as well.  The following screen, taken seconds after the first screen shot, shows that I have apparently moved to the other side of the parking lot.  I was at my desk the whole time.  iPhone simply triangulated off a different WiFi access point.

photo

The above screen shot is significant for another reason.  Two days ago, when I first received the 3GS, I parked my car in the spot indicated by the blue dot, and asked the phone to identify my location.  What this shows is that the location that the iPhone automatically tagged from my request was added to the Skyhook database within 48 hours. Impressive, no?

As I stated initially, Skyhook is an amalgam of WiFi, GPS and tower triangulation.  In theory, it should be able to work without any mobile service or line of sight to the sky.  So, how well does it work without tower triangulation or GPS?  The following shot was taken from an iPhone with no cellular service.  Notice how the accuracy has diminished, and that my location has apparently moved to the far end of the building.  Skyhook’s algorithms must take into account all forms of location information available, not relying on any specific fix.

photo (3)

I’m personally impressed.  iPhone 3GS with OS 3.0 is a dramatic improvement over prior operating systems and hardware. Most tellingly, in the last two days it has changed the way I do local search. Because of the speed with which a fix can be obtained, I find myself turning more and more to the maps application rather than  the browser to look for nearby businesses. 

I predict many more people will do the same.

{ 5 comments… read them below or add one }

Randall Howard July 17, 2009 at 11:07 am

Alec,
interesting post – IO was wondering how all this location information fit together and the AGPS is cool. I’m still wondering how they get the WiFi information since most of them are private unless it’s somehow using some kind of IP-mapping?

Anyway, your comment about pure cellular tower triangulation where you mention 3000 feet (why still use feet, i’ve almost forgotten what they are) seem low. At my house, in a rural location and probably with 850MHz towers, my fix is about 4.5 km wrong – that’s a huge miss. So, perhaps it just depends on how many towers and how widely they are spaced.

Randall

Reply

Alec July 18, 2009 at 5:28 am

My understanding, Randall, is that WiFi location is accomplished by mapping MAC address of the access point to known GPS coordinates. You can actually manually submit an access point to their database by visiting this page: http://www.skyhookwireless.com/howitworks/submit_ap.php. I presume that when an access point broadcasts SSID it must also be broadcasting the MAC address of the access point.

And yes, the miss can be huge. With 850 Mhz towers 1km is pretty common, but in rural areas the power can be increased in order to space the towers apart. There’s a tower in downtown Ottawa that I know of where experiments have been run showing that with sufficient power the cellular signal can reach the Camp Fortune ski hill nearly 20km away.

Reply

Andrew Robulack November 5, 2009 at 3:43 am

Lol. Just picked up a Bell iPhone 3GS in Whitehorse today and its location services showed me as being in Edmonton. Not quite the accuracy you’re getting! Seems these Skyhook folks have a bit of work to do on the nether regions of the world.

Reply

HarryUSA December 7, 2009 at 8:59 pm

I was looking for information on how an iPhone application retrieves the location information and passes it back to the server the app is communicating with. On my iPhone certain apps ask if it is OK to share my location with the application. Does anyone know where more info can be had on this subject?

Reply

Bill Boyd January 13, 2010 at 9:28 am

I am using the older Iphone 2G in the Dominican Republic. I had on location services. Half the time I find a wifi hotspot. What I noticed was that all the minutes I had on my phone was eaten up. Beware if you're using your iphone without a data package; especially outside the country. My Iphone is jailbroken so I can constantly change sim chips depending on where I am at.

Reply

Leave a Comment

{ 3 trackbacks }

Previous post:

Next post:

Alec on LinkedIn Alec on Twitter Alec on Facebook Calliflower on Youtube RSS Feed Contact me