What's wrong with GPS on iOS?

I’m back from standing in the fields, trying to get figure out GPS on my iPhone. No luck at all.

If I build the exact same project on Android and run it on the Galaxy Tab 2 7.0, it finds my position instantly. Even here inside the house at my desk it reports a horizontal and vertical accuracy of 16m and gives me nearly perfect longitude and latitude.

The iPhone 4S on the other hand reports a vertical accuracy of 1.3 million km even outside in the fields (horizontal accuracy 4m!) and (now comes the best part) it reports pretty much the exact same (correct) longitude value I get on Android, but as latitude! What the hell? And the longitude value is just weird. If I do (longitude - 340f) * -1f I get close to what the latitude it’s supposed to be. What’s going on?

This is in Unity 4.0.0f7

UPDATE: I figured it out. It’s actually simple: On iOS use the latitude as longitude and the timestamp (!) as latitude and you’ve got it! I guess I’m going to go and report a bug now… mumble curse

Hey, currently implementing some GPS stuff at the moment and ran into your post, can’t thank you enough for working this out. It also appears that altitude is represented by longitude on iOS… so strange.

Anyway, have you tried your implementation on a device that supports GSM (mobile network)? It appears that phone devices are unable to retrieve data from the GPS component and constantly pull a location from it’s network data.

I’d love to hear your thoughts about this as it’s been driving me mad!