Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How does the iPhone learn new WiFi locations in terms of using them for location estimates

I know the iPhone can and does use WiFi proximity to get approximate location. This obviously only can occur when some database in the sky knows the approximate location of that WiFi hotspot. My question is how do hotspots get into that db? Is it automatically added whenever the iPhone has a reasonably accurate GPS position and detects the WiFi or is there some manual or programatic way of adding hotspots?

like image 773
jamone Avatar asked Jan 26 '10 15:01

jamone


People also ask

How does Wi-Fi determine location?

Wi-Fi location tracking, also known as Wi-Fi Positioning System (WPS), takes the concept of Global Positioning System further. Instead of relying on satellites, it uses Wi-Fi routers and smart devices (Wi-Fi access points) to pinpoint a phone, tablet, or laptop more accurately than a GPS does.

How accurate is iPhone location on Wi-Fi?

Typically, your iPhone's location will be accurate within 15-20 feet. This exact number can vary depending on what method your iPhone is using to estimate its location, as well as the signal the device is able to achieve.

How accurate is significant locations on iPhone?

Q1: How Accurate Is Significant Locations? Apple says that the Significant Locations feature is the least accurate of all location monitoring. It is only updated when there is cell tower change. This means that the level of accuracy will change depending on where the user is.

Can location on iPhone be wrong?

It's possible that a setting has changed and needs to be corrected before you can also fix your incorrect iPhone location. Thankfully, you can reset all of your Location Services settings. Just open Settings and tap General -> Reset -> Reset Location & Privacy.


2 Answers

Resurrecting a long-dead thread here to report that I just encountered a major conceptual flaw in Apple's Wi-Fi location sytem and how it self-updates.

I'm in the process of deploying a new Wi-Fi network aboard a cruise ship, and we are tuning and tweaking it as we sail back across the Atlantic from the shipyard in Spain to the ship's home port.

Whenever I'm on the lower decks and out of view of the GNSS constellations, the various location-enabled apps on my iPhone revert back to the location of the shipyard... It would seem that while the ship was in drydock on a temporary terrestrial internet link from the shipyard, the myriad apple devices on board dutifully reported back a bunch of unknown ESSIDs and BSSIDs which were correlated to both the device GNSS location as well as the IP location, presumably giving apple a high degree of confidence in the location. It would seem the ESSID takes precedence because the BSSIDs are all brand new. Given that it hasn't updated the location since we sailed and are on a satellite internet link that GeoIP tags as being in multiple locations in the US, It would seem that discrepancies between satellite position (especially one that is constantly changing) and IP address geolocation would cause it to reject the update in favor of keeping the previous update that has a higher degree of confidence.

Bottom line, don't count on wifi location being even remotely accurate on moving objects. Apple says they hacve no way of blacklisting ESSIDs on moving vessels such as trains, planes, or ships. This is probably something Apple should look at redesigning. It would also be really nice if there was a way to send position in an 802.11 beacon frame.

like image 120
Ian Beyer Avatar answered Nov 03 '22 00:11

Ian Beyer


Apple uses their own database since iOS 3.2 (prior to that they used Skyhook Wireless). This works by sending WiFi MAC addresses to Apple by GPS-enabled iOS devices. So if the device has a GPS fix, it automatically sends all WiFi MAC addresses it sees alongside with the GPS-detected location to Apple. There's no option to change this behavior except the master Core Location switch. Users have to accept this transmission of seen WiFi MAC addresses in the EULA.

Location detection via WiFi works the opposite way by sending all seen WiFi MAC addresses to Apple and they respond with the location. Actually they heavily optimize this by caching as many WiFi addresses on the phone as possible. So this even works (to some degree) on iPod touch without any network connectivity.

A weak spot of this algorithm are MiFi and similar devices (relocating WiFi hotspots). Currently, Core Location does not do a very good job of discarding obviously wrong WiFi locations. For instance, on indoor trade shows without GPS reception, be prepared to get wrong location updates because of the many MiFi devices out there.

To respond to your question about manually adding WiFi hotspots: no, there's no way to do that. Just use a GPS enabled iPhone/iPad running iOS 3.2 or higher and the MAC address will make its way into the database eventually. In my experience, this happens rather quickly.

like image 35
Ortwin Gentz Avatar answered Nov 03 '22 00:11

Ortwin Gentz