private boolean needsRepaintForDistanceOrAccuracy(final UnifiedMapViewModel viewModel) {
        final LocationWrapper locationWrapper = viewModel.location.getValue();
        if (locationWrapper == null || locationWrapper.location.getAccuracy() != currentLocation.getAccuracy()) {
            return true;
        }
        return currentLocation.distanceTo(locationWrapper.location) > MIN_LOCATION_DELTA;
    }
Repaint position overlay but only with a max frequency and if position or heading changes sufficiently.
main/src/main/java/cgeo/geocaching/unifiedmap/LocUpdater.java