Life without GPS: Wi-Fi based location detection
There are alternate ways to detect location from mobile phone devices using their Wi-Fi MAC addresses (access points that connect to the internet) to determine/approximate the user's location.
Wi-Fi based positioning returns the approximate location, which may not be the exact latitude-longitude pair, but it does not provide a high level of precision.
Companies such as Skyhook Wireless and Google (with Google Latitude) were the first to provide this service. Microsoft launched a similar service under the "Managed Driving" name in July 2011, which uses cars driven around cities collecting Wi-Fi information broadcasted by public Wi-Fi access points. This coupled with location obtained from Windows mobile devices completes the data aggregation loop for Microsoft's own positioning database.
Skyhook Wireless location is pretty much public, with provisions for end users to add their location data to its database via a web interface, which is then available to all implementations of Skyhook wireless API users. Their database uses over 250 million Wi-Fi access points and cellular tower information for location analysis. Skyhook deploys data collection vehicles to conduct the access point survey, similarly to the Google Street View cars. The accuracy provided by Skyhook Wireless is 10 meters. To know more about Skyhook Wireless coverage go to:
http://www.skyhookwireless.com/howitworks/coverage.php
To get an idea on how Skyhook Wireless works:
1. Visit http://loki.com/findme.
2. Install the Java add-on it prompts.
3. Wait for a few seconds and you should see your location detected; if not you can submit your Wi-Fi Access Point to Skyhook Wireless at:
http://www.skyhookwireless.com/howitworks/submit_ap.php
The following screenshot shows my location on loki.com: