private void handleLocUpdate(final LocUpdater.LocationWrapper locationWrapper) {
        // no need to handle location update if map fragment is gone
        if (mapFragment == null) {
            return;
        }

        final int mapRotation = Settings.getMapRotation();
        if (locationWrapper.needsRepaintForHeading && (mapRotation == MAPROTATION_AUTO_LOWPOWER || mapRotation == MAPROTATION_AUTO_PRECISE)) {
            mapFragment.setBearing(locationWrapper.heading);
        }

        if (locationWrapper.needsRepaintForDistanceOrAccuracy && TRUE.equals(viewModel.followMyLocation.getValue())) {
            mapFragment.setCenter(new Geopoint(locationWrapper.location));

            if (viewModel.proximityNotification.getValue() != null) {
                viewModel.proximityNotification.getValue().checkDistance(getClosestDistanceInM(new Geopoint(locationWrapper.location.getLatitude(), locationWrapper.location.getLongitude()), viewModel));
            }
        }

        if (elevationChartUtils != null) {
            elevationChartUtils.showPositionOnTrack(new Geopoint(locationWrapper.location.getLatitude(), locationWrapper.location.getLongitude()));
        }
    }
centers map on coords given + resets "followMyLocation" state
main/src/main/java/cgeo/geocaching/unifiedmap/UnifiedMapActivity.java