GPS comparison tests

Uit wiki.openbomenkaart.org
Naar navigatie springen Naar zoeken springen

Introduction

See also GPS for how unprecise GPS can be on smartphones and how this can easily be demonstrated.

Below are screenshots taken on September 29, 2024, during a walk in the park, under a clear sky. In one hand, I held an iPhone 14 (with dual-band GPS), and in the other, an iPhone 12 (without dual-band GPS). I used this test version. There were no other tabs open in Chrome.

For testing purposes, the OpenBomenKaart application uses diagnostic tweaks, as shown in the screenshots.

The exact path I walked is marked in cyan. I traced this route on the desktop using Esri imagery via tool keene.edu/campus/maps/tool/. I consider this my reference track. Note that Esri and OSM may not always align perfectly, especially for paths in the park.

Every second, GPS coordinates are recorded along with an accuracy value. I translate the accuracy into a rating scale from 1 to 5 ('weak' to 'spot on'). See the code example below.


code example (pls ignore the syntax warnings)


Every second, I display the measured position as a magenta circle. Every time the signal strength changes by a full level, I plot a yellow circle and indicate the strength. I connect the dots with a red line. I count how often each accuracy level is found. Which is shown (cryptically short) in the heading (only in the test version, with parameter 'log'), together with the date, the latter being for easily comparing screenshots between walks.

In the live app, the circles work best at zoom level 19 or higher. The red line works best at zoom level 18 or lower.

Screenshots

Note: blue numbers are change of accuracy level

The routes

iPhone 12, 29 sep, clear sky, gps_class:
1:0% 2:76% 3:17% 4:4% 5:3%
iPhone 14, 29 sep, clear sky, gps_class:
1:0% 2:28% 3:54% 4:13% 5:4%
iPhone 14, 30 sep, rain, gps_class:
1:0% 2:29% 3:51% 4:15% 5:4%
iPhone 14, 1 okt, cloudy, gps_class:
1:0% 2:0% 3:1% 4:4% 5:95%!!!
95% for level 5
Almost perfect! How come? App in the background? Google Map? MapMyWalk? I killed both, but still same top accuracy
iPhone 12 only the numbers
iPhone 14 only the numbers
 
iPhone 14 only the numbers
Hardly any blue ones, for accuracy level change
iPhone 14, 3 okt, sunny
This time I had app MapMyWalk active, part of the route, It's easy to see when I switched it off and on

Dirty details

Closer view, zoomed in:
I started and ended here, then walked in a straight line, hard to tell
This log is for debugging only, only with run time parameter 'log'
iPhone 12
iPhone 14 note how this trace goes awry at Constantijn Huygenslaan 7-19, both iphones were at the same position, I never made this detour


Evaluation

Both iPhones are able to render the route taken with reasonable accuracy, when zoomed out. However, upon closer inspection (when zoomed in), the discrepancy can be confusing. The exact position can be off by 10 meters or more from what is reported. During normal use, this can be mitigated by waiting for the blue dot to stabilize, similar to Google Maps. However, in an unstructured area, like a park, it may not be as easy to detect discrepancies using visual cues. We actually need higher precision than Google Maps. Since in Google Maps, if the blue dot is a few meters outside a bicycle lane, no one will be confused. In OBK one stands before the wrong tree. And only experts will notice immediately, but they don't need OBK in the first place.

  • I was puzzled, and still am, why on some days GPS reception was 'spot on' most of the time. If on the screen one stood besides a certain tree, one would indeed be doing so in reality.
  • I noticed that sometimes when I switched to another tab that used GPS (e.g. Google Maps, but also others) then after switching back accuracy went to 5 'spot on' but only for few cycles.

Today I had only this one tab open on both phones.

  • I also experimented with how often OBK asked for new GPS coordinates. No clear difference between once per second of once every 5 seconds.
  • I also did a hard reset of the phone. Didn't change much.
  • Then on another occasion I reset localizations service on the iPhone. Made no difference.