Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

libertysat

macrumors 6502
Original poster
Nov 10, 2010
252
123
I just noticed in iPhoto that my touch knew about where I was in another town when I snapped the pic
Was off by something like 6 miles but still ~50 miles from home

Then I found another pic taken in front of my house with the 'pin' about 600' from where I was and I was probably barely in range of my wifi - I have it loaned out right now so can't verify but my phone barely sees my wifi there

I didn't think there was a gps chip in it so how does it know?

My iphone puts the pin pretty much dead on
 
It uses WiFI triangulation and if it can't get a location, it uses the last known location. No, there is not a GPS chip in the iPod Touch.
 
Im not sure, but I think its some form of wifi triangulation, or just estimation, based on where you are connected.

EDIT: Looks like Intell was quicker on the draw. Note however that the iPod "knowing where you are" is not nearly as accurate as something with a GPS chip.
 
I just noticed in iPhoto that my touch knew about where I was in another town when I snapped the pic
Was off by something like 6 miles but still ~50 miles from home

Then I found another pic taken in front of my house with the 'pin' about 600' from where I was and I was probably barely in range of my wifi - I have it loaned out right now so can't verify but my phone barely sees my wifi there

I didn't think there was a gps chip in it so how does it know?

My iphone puts the pin pretty much dead on

Probably fm / wifi triangulation.
 
Your iPod touch has a database of the MAC addresses and coordinates of many publicly visible WiFi base stations (not necessarily publicly accessible, ie. they may be encrypted -- they just have to be visible) throughout their major customer markets. The database was originally provided by two subcontractors -- Skyhook and Google -- but in iOS 3.2 and above, Apple maintains the database themselves.

Basically, Apple uses its own user base to create a self-correcting database:

1) A user with a GPS-enabled iOS device uses an App than turns on Core Location services. IF THE USER LEAVES CORE LOCATION TURNED OFF, THEN NONE OF THIS HAPPENS.

2) The device automatically uses GPS to determine your location. It may use additional information such as nearby cell towers and WiFi access points that are already in its database to speed up the lock. Core Location returns this information to the App, and as far as the user is concerned, the whole process is complete.

3) BUT, behind the scenes, the device also silently scans for nearby WiFi access points and cell towers.

4) The device checks to see if those WiFi access points and cell towers are already known in its database.

5) If not, or if the existing database entry for that tower or access point is significantly incorrect based upon the known GPS coordinates, the device "phones home" (perhaps the next time the device synchronizes with iTunes) to inform Apple's central server about the true locations of any access points and towers it has recently discovered.

6) Apple's central servers process the information to produce a new version of its location database -- this revised information will subsequently by distributed out to all iOS-based devices.

7) The user of an iOS device without GPS (such as an iPod touch or a WiFi-only iPad) uses an App than turns on Core Location services. It uses the most recently synchronized database, furnished by its GPS-enabled iOS counterparts, to look up any nearby WiFi access points, and if there is enough information, it attempts to triangulate an estimate of the device's present location.
 
Last edited:
I'm trying to figure out how the touch would have room to store a database of MAC addresses and coordinates.

A MAC address has 6 bytes. A set of GPS coordinates can be stored in as few as 16 bytes - maybe fewer if you want to sacrifice some precision. A complete coordinate set can therefore be stored in 22 bytes. A database of 1 million such data points can be stored in 20 MB. And that's assuming the database is stored without any lossless data compression algorithm at all.

In densely populated areas, not all data points which get collected are necessary to achieve reasonably good positioning, so the central server can safely filter out excess data points from areas that are already over represented. A Core Location database of 1 million data points could probably cover a fairly large geographic area. So, it's something that could probably be just updated every time you resynchornize your iPod touch with iTunes, using the public IP address from your iTunes computer to give Apple a rough idea of what part of the world you're in (eg. US north-east, vs. UK, vs Australia, etc...) for the purpose of choosing what subset of the global data set to synch with your iPod touch.

The OS itself is well over 300 MB, so setting aside 20 MB or so for a Core Location database isn't really all that excessive.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.