Looking at the Google geolocation API it claims:
Geolocation API returns a location and accuracy radius based on information about cell towers and WiFi nodes that the mobile client can detect.
Assuming a phone is in airplane mode or has no sim card and thus cannot connect to cell towers, and assuming that GPS is also disabled, how can a phone determine its location based off of only the wifi networks in range?
Is Google using the collected data from street view wifi MAC addresses, and combining it with the GPS from the street view van? would this correlation data be stored on the phone, or downloaded as-needed via a data connection? or does this only work with known wifi networks? is it based off of the MAC address or the wifi network name?
Is this Google-specific or are there other API's/companies that can do this (and not rely on Google as their back-end?)