Question

I have an iOS application where users can upload photos taken with the UIImagePickerController.

When I look at the jpg exif data, I've noticed that a substantial number of photos have "iPod Touch" filled in the "Camera Model Name".

How come I can collect pictures taken with an iPod Touch, even though it is required to have granted Geolocation access to the application?

Even on iPod Touch device, I get GPS coordinates?

Camera Model Name               : iPod touch
GPS Latitude                    : 48 deg 51' 7.80" N
GPS Longitude                   : 2 deg 20' 48.00" E

NB: It is required for the users to have enabled GeoLocation.

Was it helpful?

Solution

The iPod Touch does not have a GPS chip (see here).

As such it uses Wi-Fi to obtain an approximate location. The technology Apple uses is licensed from a company named Skyhook - and they've got a nice "How It Works" section on their website.

Basically they attempt to triangulate (or better) Wi-Fi signals your iPod receives whether you are connected to that Wi-Fi network or not (essentially an SSID scan). They have data of their own regarding the actual GPS location of various Wi-Fi signals (which don't tend to move much).

But given that Wi-Fi signals don't exist everywhere (like in the middle of a cornfield in Iowa, or in the basement of a big academic building, etc.) and the lack of GPS on an iPod, your iPod users frequently have no GeoLocation available.

In your case, you're probably using the Requiring the Presence of Location Services in Order to Run aspect of Core Location which does not require GPS, but only requires some location service (i.e. Wi-Fi on an iPod in this case) to be available.

Other options available through granting geolocation access do not require a geolocation to be available and valid, but simply requires that if a location is available, your app can receive the data.

Depends on how you're coding :)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top