Bottom Line: Some basic testing of the accuracy of GPS on the iPhone, and a Pythonista script to text someone your GPS location.
This is a followup post to How to Find Your GPS Coordinates on an iPhone. I suggest you read that for a little context.
In this post, I wanted to publish my results on a little testing of the accuracy of the GPS on my iPhone 5, specifically in a location with no cellular service, no data, and no WiFi. The short version is this: your GPS signal is separate from all of these, so you can still get an accurate location from your iPhone’s Compass app.
In order to try to figure out how accurate the iPhone 5’s GPS can be in this situation, I did a little experiment. While driving through the middle of nowhere in Arizona, I noticed that I had no cellular or data signal. I pulled my truck over at a location that would be relatively easy to identify with satellite imagery (e.g. an intersection, which I could see on Apple Maps or Google Maps). Then I got my GPS location.
Additionally, I refreshed the location 10 times, to see if it varied at all second-by-second. I took a screenshot each time so I could look at everything later. NB: the GPS data reported in Compass.app does not seem to automatically refresh. The easiest / fastest way to force it to refresh is to swipe to the left (should show the level), then swipe back.
Then, I did this all again at a second site to make sure it was reproducible.
In doing some background investigation, I was trying to figure out the resolution of one “second” of latitude or longitude in terms of linear distance. Ends up it’s a more complicated question than that. Linear length of one degree (or minute or second) of latitude and longitude vary, for reasons I didn’t dive into (
though Wikipedia has a seemingly decent article about it article moved, here’s a different one with a lot of funny symbols). Based on this calculator by the Federation of American Scientists, at 34º17’58” N 108º36’55” W — one of my coordinates — it looks like one second is about 30.8 meters (or 101 ft) of latitude and 25.7 meters (84 ft) of longitude.
Hint: They key for º is
option 0 on a Mac.
My results found that the GPS was very accurate and precise. In both locations, my second-to-second GPS location did not vary at all between the 10 refreshes.
|My first GPS location was 34º 17′ 58″ N 108º 36′ 55″ W. View in Google Maps||View in Apple Maps|
If you don’t want to follow the links, here’s what it looks like:
Here you can see the actual location of my truck:
And here’s one of my 10 screenshots:
The other 9 are pretty much the same, but if you care, you can download all the pics from this post + the extra / not shown screenshots here.
As you can see, there’s good agreement between the two services as to where that location is. Here are a few photos of the exact location of my truck for comparison.
Because I was surprised at there being no second-by-second variability when refreshing the location, I decided to drive along the empty dirt road while refreshing until the location changed. Clearly I don’t recommend anyone drive while using their cellphone; this was along an empty dirt road at about 5 mph… and in the name of science. Here’s where it changed:
It looks like that’s probably about 121 feet. As it is essentially directly South, that is in pretty good agreement with the calculated number of 101 ft that I posted above (and I may have been a little generous on my line).
|My second GPS location was 34º 35′ 9″ N 108º 23′ 14″ W. View in Google Maps||View in Apple Maps|
I parked at essentially the same relative location in the intersection, but didn’t get out and take a picture. As stated above, I again had 100% agreement on the location between 10 refreshes of the Compass app. If you’ll follow the links above, you’ll see that both Apple and Google Maps place the location about 50 feet North of where I was in the actual intersection. However, as that 50 feet is less than the margin of accuracy of 1 degree of latitude at this location, they’re essentially both spot on.
Conclusions and Script
Basically, it looks like the iPhone GPS can be pretty darn good. I’m sure there are plenty of situations that will compromise its accuracy, but it looks like even without cellular signal or data, it is still worth a shot using the Compass app to get your GPS coordinates.
Finally, what would a post like this be without a Pythonista script? The script below can get your GPS coordinates without cellular or internet connectivity, and gives you the option to take a quick look at your location (~5 secs) or spend a little more time to get more precise info (~25 secs). Then it places your coordinates with a timestamp into an SMS message. Now you won’t be able to send this message without signal, but you should be able to try to send it, then when it fails you can continue to retry to send it whenever you get a little better signal. My recommendation would be to turn on Airplane Mode to save battery (and / or get a spare battery pack — I have this one and use it all the time), then check for signal every once in a while if you think you’ve gotten to a place with better reception.