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.
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.
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!
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.
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.
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.