Location via GPS jumps

We have a that relies on accurate GPS location but we’ve noticed that every now and then the location ‘jumps’ a few hundred meters to a different location but reports horizonal accuracy less than 10m.

we think the device is picking up a rough location from a local WiFi rather than internal gps sensors.

can we a) disable WiFi location Updates? b) identify WiFi location Updates?

thank You

It is not possible to disable WiFi updates. the requiredAccuracy property will force GPS updates if set to 10 meters or less, but if you are in a position where a clear GPS fix cannot be obtained, then CoreLocation will fall back to WiFi or mobile tower based locations but the horizontalAccuracy will no longer be 10 meters. For WiFi you will see 65 meters or more.

While not every 65 meter accuracy location will be WiFi based, no WiFi based location should be 10 meters. So it is likely something else going on here.

iOS uses fused data from GPS, WiFi, other sources, and corrects based on data from the motion chip.

It is possible that one of those sources is feeding something else. Or perhaps your location does not have a clear sky view and there are reflections of the signal. This is a typical issue with city centers with a lot of glass high-rises.

In any case, these will all be guesses. To understand the issue truly, we will need some diagnostic logs from the affected device.

If you are interested in having our engineering teams to investigate this issue, you could open a bug report, include details about your location and test cases, and also include a diagnostic log.

To obtain that, please go to https://developer.apple.com/bug-reporting/profiles-and-logs/ and follow the instructions for Location Services for iOS to install a logging profile on your device.

Then reproduce the issue, and follow the instructions at the above link to create a sysdiagnose. And attach that to the Feedback report as well.

Bug Reporting: How and Why? has tips on creating a successful bug report.

Hello Engineer, thank you for your helpful reply. we are on the water on a boat near the coast. The sky is clear and there are no obstructions. We (and others) have noticed that the phone location jumps from the gps location to a nearby location, last time this was 144m away with 9m accuracy. We rely on accurate gps location for safety and critical alerts. The incorrect gps location is always on shore. We have determined (old location to new location distance and time hence) speed and if it’s great than 10m/s it’s a false signal and we wait for a good signal. Nothing on the phone appears to change to trigger the jump, nothing physical either.

Is this happening when the boat is floating around very slowly? Also, does the placement of the phone change things, as in handheld vs. mounted, and perhaps changing the mounting position?

What would be important here is the .activityType your app is using. If you have selected a different type, you may want to try CLActivityType.other and see if that changes your results. The wrong locations jumping to the shore sounds like the system is trying to correct to a "possible" location at the shore.

In any case, if the issue only happens when slowly floating, or the phone's position changes the results, we would still like to see the diagnostic logs through a bug report (I explained how to obtain the logs above).

Hello Engineer,

thank you again for your reply. I’ve been travelling so please excuse my delayed reply.

yes the boat is floating around very slowly, often 100-400m from shore.

im using clservicesession .whenInUse and have not specified an activity type. Is this even possible? if for whatever reason I get no update from clservicesession for more than 30s I trigger a get current location using cllocationmanager .requestLocation using bestForNavigation but haven’t specified an activity type. My log above suggests that it’s this service that has triggered the jump.

The hard thing about diagnostic report is catching the jump, the phone can be actively monitoring location as required for 8h then jumps, it could come down to low satellites in orbit, but the phone remains unmoved connected to power in foreground for the duration.

i’ll do more research on activity type for clservicesession and clLocationManager and try and get more diagnostics.

thank you, Brendan

Location via GPS jumps
 
 
Q