Skip to content

Conversation

@yniverz
Copy link

@yniverz yniverz commented Apr 10, 2025

Precision Settings, Accuracy Filters, and Better Update Pausing

These commits add a few features to further configure how and when the iPhone gathers location data. They also add a setting to activate precision sliders for some of the settings.

New Discard Constraint

A new setting Max Accuracy of Points does exactly what it says: it discards location updates if their accuracy is worse than the configured threshold, if activated.

Precision Setting

UISlider elements for the "Discard" settings can be activated using a toggle in the iOS Settings app. This will also hide the segmented control and add a number to the label above each slider to show the current setting.
The selection of the segmented control indices is updated as the numbers can now differ from the predefined values. These will be rounded down to the next available value if the user switches back to the segmented controls.

If Precise Settings is deactivated (default), the interface will revert to the original.

Precise settings activated and new settings
image

Force Pausing Location Updates

As visible in the screenshot, there are two more settings: Stop Updates if within Radius and Stop Updates After. These are part of a new feature that helps reduce battery usage while maintaining high update frequency during movement.

Working Principle

This works by defining an area around the last used location using a radius and time limit. If the user hasn't left the area within the time limit, location updates will stop entirely. However, "Significant Location Updates" will still be received.

This ensures that the app can still resume tracking even if it’s closed or in the background. One drawback is that significant location updates are sent somewhat arbitrarily once you start moving again, but based on experience, this usually happens after about 500 meters, and at most after around 1 kilometer.

Why Not Just Use the Regular Pause Updates?

Essentially, this feature works like “Pause Location Updates”, but with more control. The user no longer relies on the phone’s arbitrary decisions on when to pause updates, which wastes battery.
Just like with "Pause Location Updates" however, the documentation states that an update after a significant location change is not guaranteed, but from my own personal experience over the past year with this feature I have yet to experience this not working.

Good to Knows

  • These features are only available when Continuous Tracing Mode is set to “Both” to ensure that significant location updates are desired.
  • The Stop Updates After setting will be greyed out until the radius constraint is enabled.

All features have been personally tested and verified in a live environment.

Issues/Possible improvements

Currently the new stopping feature will behave unpredictably when "Pause Automatically" is activated, but deactivating it fixes that. Possibly implement logic that prevents activation of both at the same time.

@yniverz yniverz changed the title Precise Threshold Settings for discarding of points Precision Settings, Accuracy Filters, and Better Update Pausing Apr 23, 2025
@aaronpk
Copy link
Owner

aaronpk commented Oct 23, 2025

Thank you for this! I've gotten a few requests for these features.

Do you have any insight on how this has been working for you after a few months? In particular the "stop within radius" feature. I'm mainly worried about losing the data between leaving the radius and the phone's significant location trigger firing. I'm curious how you've found that to behave after a while now.

@yniverz
Copy link
Author

yniverz commented Oct 26, 2025

Ive been using it ever since pushing these commits, and it's been working great!

All the added "filters" have been working perfectly and pretty much as expected. As you mentioned there is a slight distance between a location that I've stopped and when I started moving again, in my experience once i start moving for 700m it starts picking up the trace again.

There will be minimally slightly higher battery usage while traveling, but in exchange no usage when im stationary and the updates have stopped. For personal reasons I haven't been needing the Continuous mode for the past few weeks, and it seems as though there was absolutely no higher battery usage compared to now (minus the issue below which has now stopped occurring).

The only issue that I've come across to which I haven't found the culprit and frankly haven't had the time to properly debug is that sometimes when I arrive at a location, probably around the time it stops updates due to the radius, it will sometimes (around 1 in 20 times) seem to get stuck on something and heat up the phone to about a million degrees, and the app seems to be frozen when trying to open it.
This will fix itself after consuming about 10% battery or if I close and restart the app manually, which sucks.
This is tested on an iPhone 15 with iOS 18.

In any case im happy to share more insight if anything specific is of interest.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants