Significant Location Change — wat is het, triggers en werkingsmechanisme

Auteur: IT Sectr Gepubliceerd: 2026-03-28 Leestijd: 10 min

Significant Location Change (SLC) is een iOS-service voor het monitoren van grote verplaatsingen van het apparaat, die de app alleen bij significante veranderingen van geografische coördinaten op de hoogte stelt. In tegenstelling tot GPS-tracking in real-time gebruikt SLC zendmasten voor locatiebepaling, wat zorgt voor minimaal energieverbruik. Volgens documentatie Apple Developer, 2025 stelt Significant Location Change de app in staat geoposities updates te ontvangen zonder continu GPS-gebruik, waardoor tot 90% batterij bespaard wordt in vergelijking met continue tracking.

Belangrijkste punten

  • SLC — monitoring van significante locatieveranderingen op basis van zendmasten
  • Energieverbruik — tot 90% batterijbesparing vergeleken met continue GPS-tracking
  • Triggers — wisselen van zendmast, overschrijden van clustergrenzen, inschakelen GPS
  • Beperkingen — minimale updateafstand ~500 meter, nauwkeurigheid tot een kilometer
  • iOS 13+ — Always-toestemming en beperkingen voor achtergrondstarts toegevoegd

Wat is Significant Location Change

Significant Location Change (SLC) is een energiezuinige iOS-geolocatieservice ingebouwd in het Core Location-framework. Het is bedoeld voor apps die grote verplaatsingen van de gebruiker moeten volgen zonder continu gebruik van de GPS-module. SLC wordt automatisch geactiveerd bij overgang tussen zendmasten en stelt de app op de hoogte via de CLLocationManagerDelegate-methode didUpdateLocations.

In tegenstelling tot GPS-level tracking (standaard startUpdatingLocation) vereist SLC geen constante activiteit van de processor en GPS-chip. iOS gebruikt signalen van zendmasten om de geschatte locatie te bepalen en start de app alleen bij detectie van een significant coördinaatverschil. Hierdoor kan de app ‘slapen’ tussen updates door, met minimaal energieverbruik.

SLC is beschikbaar op alle apparaten met een mobiele module vanaf iOS 5. Op iPod Touch en iPad Wi-Fi Only is de service niet beschikbaar omdat voor coördinaatbepaling juist zendmasten worden gebruikt. Core Location beslist automatisch welke gebeurtenissen als significant worden beschouwd — de ontwikkelaar kan de gevoeligheid van SLC niet configureren of de minimale afstand voor een trigger instellen.

Voor welke apps is SLC geschikt

SLC is ideaal voor apps die geen hoge nauwkeurigheid van geopositie nodig hebben: weertrackers, bezorgdiensten, apps voor het vinden van nabijgelegen objecten, analyse van bezochte plaatsen. SLC wordt ook door iOS gebruikt voor het activeren van geozones (Geofencing) in energiebesparende modus. Navigatie-apps vereisen nauwkeurigere GPS-tracking.

Hoe werkt Significant Location Change

Significant Location Change werkt op basis van analyse van zendmastidentificaties (Cell ID) die het apparaat ontvangt bij verbinding met het netwerk. iOS onderhoudt een database met coördinaten van zendmasten en kan de geschatte locatie bepalen zonder GPS in te schakelen. Wanneer het apparaat naar een nieuwe mast overgaat, vergelijkt het systeem de nieuwe en vorige locatie en start het de app voor verwerking als het verschil significant is.

Het systeem gebruikt een clusterbenadering: de geografische ruimte wordt verdeeld in clusters met een bepaalde straal. SLC genereert alleen een gebeurtenis bij overschrijding van de clustergrens, niet bij elke micro-verplaatsing erbinnen. Dit voorkomt lawine-achtige aanroepen van de app bij beweging binnen één dekkingszone (bijvoorbeeld in een gebouw of wijk). Nauwkeurigheid van SLC varieert van 500 meter tot enkele kilometers, afhankelijk van de dichtheid van zendmasten.

Wanneer iOS een significante verandering detecteert, wekt het de app uit de achtergrondstatus (indien niet gestart) en geeft de gebeurtenis door aan de Core Location-delegate. De app krijgt korte tijd voor verwerking (ongeveer 10–30 seconden achtergrondtijd) — binnen deze tijd moeten coördinaten worden verwerkt en, indien nodig, een nauwkeurigere update via GPS worden gepland.

App starten vanuit de achtergrond

SLC heeft het privilege om de app te wekken uit de status Suspended of Background. Als de app door het systeem is gedood wegens gebrek aan geheugen, zal SLC deze opnieuw starten (relaunch) op de achtergrond. Hiervoor moet de app zijn geabonneerd op UIApplication.LaunchOptionsKey.location in de methode didFinishLaunchingWithOptions. Na verwerking van de gebeurtenis kan het systeem de app weer in de status Suspended zetten.

Triggers van Significant Location Change

Triggers van SLC worden uitsluitend door iOS bepaald — de ontwikkelaar kan niet programmatisch beïnvloeden welke coördinaatverandering als ‘significant’ wordt beschouwd. Er bestaan echter gedocumenteerde scenario’s waarin SLC gegarandeerd een gebeurtenis genereert. Inzicht in deze triggers helpt de ontwikkelaar het juiste gedrag van de app te ontwerpen.

Wisselen van zendmast

Cell tower change — de belangrijkste trigger van SLC. Wanneer het apparaat schakelt tussen zendmasten (bij verplaatsing door de stad, over de weg), controleert het systeem of de coördinaten tussen oude en nieuwe mast voldoende zijn veranderd. Zo ja — dan wordt een gebeurtenis gegenereerd. In stedelijke omgevingen met een dicht mastnetwerk kan SLC elke 1–3 kilometer afgaan.

GPS ingeschakeld door andere apps

Als een andere app of systeemdienst (bijv. ‘Zoek mijn iPhone’, navigatie) de GPS-module inschakelt, kan SLC ook een update van nauwkeurige coördinaten ontvangen. Dit is een bijeffect: GPS bepaalt de exacte locatie en iOS geeft deze door aan alle apps die op SLC zijn geabonneerd. Op deze trigger kan echter niet worden vertrouwd — deze is niet gegarandeerd.

Overgang tussen Wi-Fi-netwerken

Hoewel SLC geen direct gebruik maakt van Wi-Fi, kan het wisselen van Wi-Fi-netwerk indirect een gebeurtenis veroorzaken als het apparaat nieuwe coördinaten ontvangt via Apple Location Service (locatiebepaling op basis van Wi-Fi-databases). iOS hasht de coördinaten van Wi-Fi-toegangspunten en gebruikt deze om de positie tussen mastwisselingen te verfijnen.

TriggerGarantieVertragingNauwkeurigheid
Wisselen zendmastHoog1–30 s500 m – 3 km
GPS andere appsLaagDirectTot 10 m
Wi-Fi wisselenGemiddeldTot 5 min100–500 m

SLC vs andere iOS geolocatiediensten

iOS biedt verschillende mechanismen voor geolocatie, elk met eigen nauwkeurigheid, energieverbruik en gebruiksscenario’s. Significant Location Change bevindt zich tussen grove benadering via masten en nauwkeurige GPS-tracking en biedt een optimale balans voor apps die geen hoge real-time nauwkeurigheid nodig hebben.

Standard Location Service

Standard Location Service (startUpdatingLocation()) gebruikt GPS, Wi-Fi en zendmasten voor maximaal nauwkeurige coördinaatbepaling. Nauwkeurigheid tot 10 meter, maar het energieverbruik is hoog — de GPS-module is constant actief. Geschikt voor navigatie, fitnesstrackers, AR-apps. SLC daarentegen gebruikt niet constant GPS en heeft een nauwkeurigheid van 500 meter of lager.

Region Monitoring (Geofencing)

Region Monitoring volgt het betreden en verlaten van bepaalde geografische zones. In tegenstelling tot SLC bepaalt de ontwikkelaar zelf de regiogrenzen (straal vanaf 100 meter). Geofencing gebruikt SLC als hulpmachine — het systeem bepaalt eerst de geschatte locatie via SLC en schakelt vervolgens GPS in voor exacte bepaling van binnenkomst/vertrek. Maximaal aantal gevolgde regio’s — 20.

Visit Monitoring

Visit Monitoring — een gespecialiseerde iOS 8+-dienst die plaatsbezoek (aankomst en vertrek) volgt. Het gebruikt een combinatie van SLC en andere signalen om te bepalen wanneer de gebruiker op een plek is gestopt en wanneer hij deze heeft verlaten. Visit Monitoring is energiezuiniger dan SLC omdat het minder gebeurtenissen genereert en machine learning op het apparaat gebruikt.

DienstNauwkeurigheidEnergieverbruikAchtergrond
SLC500 m – 3 kmZeer laagJa
Standaard GPSTot 10 mHoogVereist toestemming
GeofencingVanaf 100 mLaagJa
Visit MonitoringTot 100 mZeer laagJa

Energieverbruik en batterij

SLC is de meest energiezuinige manier om geolocatie op iOS te verkrijgen, afgezien van Visit Monitoring. Volgens Apple verbruikt SLC ongeveer 0,1–0,5% batterij per uur in een typisch gebruiksscenario, terwijl continue GPS-tracking 5–10% per uur kan verbruiken. De besparing wordt bereikt doordat de GPS-module slechts kort wordt ingeschakeld voor coördinaatverificatie bij elke gebeurtenis.

iOS beheert het energieverbruik van SLC via batterijoptimalisatie. Als het systeem merkt dat de app te vaak SLC-gebeurtenissen verwerkt (bijv. het apparaat beweegt met de trein en frequente mastwisselingen genereren veel gebeurtenissen), kan iOS de meldingsfrequentie tijdelijk verlagen. Dit is een automatisch mechanisme — de ontwikkelaar kan het niet uitschakelen.

Met elke grote iOS-release verscherpt Apple het beleid voor achtergrondtoegang tot geolocatie. Sinds iOS 13 is het dialoogvenster voor toestemmingsaanvraag voor achtergrondlocatiegebruik gewijzigd: de gebruiker moet expliciet ‘Always’ (Altijd) kiezen, niet alleen ‘While Using’ (Tijdens gebruik). Zonder Always-toestemming werkt SLC niet wanneer de app op de achtergrond is of door het systeem is beëindigd.

  • SLC — 0,1–0,5% batterij per uur; GPS — 5–10% per uur bij continu gebruik
  • iOS 13+ — expliciete Always-toestemming vereist voor SLC op de achtergrond
  • Optimalisatie — iOS verlaagt automatisch SLC-frequentie bij actieve beweging
  • Batchverwerking — meerdere SLC-gebeurtenissen kunnen worden samengevoegd in één melding

Implementatie in Swift

Laten we de volledige implementatie van Significant Location Change in Swift bekijken. Het voorbeeld omvat configuratie van CLLocationManager, Always-toestemmingsaanvraag, starten van monitoring, gebeurtenisafhandeling en ondersteuning voor app-herstart na beëindiging door het systeem. De code gebruikt moderne Swift met async/await voor coördinaatverwerking en achtergrondtaken via BGTaskScheduler.

swift
import CoreLocation
import UIKit

class LocationManager: NSObject, CLLocationManagerDelegate {

    private let manager = CLLocationManager()

    override init() {
        super.init()
        manager.delegate = self
        manager.pausesLocationUpdatesAutomatically = true
        manager.desiredAccuracy = kCLLocationAccuracyThreeKilometers
    }

    func requestAlwaysAuthorization() {
        manager.requestAlwaysAuthorization()
    }

    func startSignificantLocationUpdates() {
        manager.startMonitoringSignificantLocationChanges()
    }

    func locationManager(_ manager: CLLocationManager,
                           didUpdateLocations locations: [CLLocation]) {
        guard let location = locations.last else { return }
        Task.detached {
            await LocationProcessor.handleLocationUpdate(location)
        }
    }

    func locationManager(_ manager: CLLocationManager,
                           didFailWithError error: Error) {
        Logger.log("SLC error: \(error.localizedDescription)")
    }
}

Afhandeling van app-herstart

Als de app door het systeem is beëindigd, wordt SLC automatisch opnieuw gestart bij een nieuwe gebeurtenis. In AppDelegate moet een controle op starten via een locatiegebeurtenis met UIApplication.LaunchOptionsKey.location worden toegevoegd. Na herstart moet de app CLLocationManager initialiseren en startMonitoringSignificantLocationChanges() aanroepen om monitoring voort te zetten.

swift
class AppDelegate: NSObject, UIApplicationDelegate {

    private let manager = LocationManager()

    func application(_ application: UIApplication,
                           didFinishLaunchingWithOptions launchOptions:
                               [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        if launchOptions?.keys.contains(.location) == true {
            Logger.log("App relaunched by SLC event")
        }
        manager.requestAlwaysAuthorization()
        manager.startSignificantLocationUpdates()
        return true
    }
}

Beste praktijken

Correct gebruik van Significant Location Change vereist een balans tussen functionaliteit en energie-efficiëntie. Apple controleert strikt de achtergrondtoegang tot geolocatie en apps die SLC misbruiken of zonder duidelijke noodzaak gebruiken, riskeren afwijzing bij publicatie in de App Store.

Leg altijd de noodzaak van SLC uit

In Info.plist moeten verantwoordingsteksten worden toegevoegd: NSLocationAlwaysAndWhenInUseUsageDescription en NSLocationWhenInUseUsageDescription. De beschrijving moet duidelijk uitleggen waarom de app achtergrondtoegang tot geolocatie nodig heeft. App Review leest deze teksten en kan de app afwijzen als de verantwoording onvoldoende of onduidelijk is. Voorbeeld: ‘Deze app gebruikt SLC om de weersverwachting bij te werken tijdens uw verplaatsing.’

Verwerk alleen benodigde gebeurtenissen

Start geen dure bewerkingen (GPS-locatie, netwerkverzoeken) bij elke SLC-gebeurtenis. SLC kan tientallen gebeurtenissen per uur genereren bij verplaatsing met vervoer. Gebruik debounding: sla de tijd van de laatste volledige update op en sla verwerking over als er minder dan 5–10 minuten zijn verstreken sinds de vorige update. Dit bespaart batterij en netwerkverkeer.

Combineer met BGTaskScheduler

Voor langdurige verwerking na een SLC-gebeurtenis gebruikt u BGTaskScheduler. Wanneer de app een SLC-gebeurtenis ontvangt, kan het een achtergrondtaak plannen via BGProcessingTaskRequest of BGAppRefreshTaskRequest. Hiermee kunnen resource-intensieve bewerkingen (synchronisatie met server, route-analyse) worden uitgesteld naar het dichtstbijzijnde achtergronduitvoeringsvenster, zonder de hoofdstroom van de SLC-respons te blokkeren.

  • Info.plist — verplichte verantwoordingsteksten voor achtergrondtoegang tot geolocatie
  • Debounding — verwerk gebeurtenissen niet vaker dan 1 keer per 5–10 minuten
  • BGTaskScheduler — plan achtergrondtaken na een SLC-gebeurtenis
  • Always-toestemming — vraag alleen bij werkelijke noodzaak
  • pausesLocationUpdatesAutomatically — inschakelen voor automatische GPS-pauze

Veelgestelde vragen

Wat is Significant Location Change in iOS?

Significant Location Change (SLC) is een energiezuinige iOS-service voor het monitoren van grote verplaatsingen van het apparaat op basis van zendmasten. Het verbruikt tot 90% minder energie dan continue GPS-tracking en is geschikt voor apps die geen hoge nauwkeurigheid van geopositie nodig hebben.

Wat is de nauwkeurigheid van Significant Location Change?

Nauwkeurigheid van SLC varieert van 500 meter tot 3 kilometer, afhankelijk van de dichtheid van zendmasten. In stedelijke omgevingen is de nauwkeurigheid hoger (dichter bij 500 m), in landelijke gebieden — lager (tot enkele kilometers). SLC is niet bedoeld voor nauwkeurige coördinaatbepaling — het is een middel voor grove monitoring van verplaatsingen.

Hoe krijg ik Always-toestemming voor SLC?

Roep CLLocationManager.requestAlwaysAuthorization() aan na het toevoegen van de tekst NSLocationAlwaysAndWhenInUseUsageDescription in Info.plist. Sinds iOS 13 moet de gebruiker expliciet ‘Always’ (Altijd) kiezen in het systeemdialoogvenster. Zonder deze toestemming werkt SLC niet op de achtergrond.

Kan SLC een gedode app opnieuw starten?

Ja, SLC kan de app opnieuw starten als deze door het systeem is gedood wegens geheugengebrek. Controleer bij het starten UIApplication.LaunchOptionsKey.location in de methode didFinishLaunchingWithOptions en roep startMonitoringSignificantLocationChanges() aan om de monitoring voort te zetten.

Hoe verschilt SLC van Standard Location Service?

SLC gebruikt alleen zendmasten en schakelt GPS niet constant in, wat tot 90% batterijbesparing oplevert. Nauwkeurigheid — van 500 m tot 3 km. Standard Location Service gebruikt GPS, Wi-Fi en masten, nauwkeurigheid tot 10 m, maar verbruikt aanzienlijk meer energie. SLC is geschikt voor achtergrondmonitoring, GPS — voor navigatie.

Samenvatting

  • Significant Location Change — energiezuinige monitoring van grote verplaatsingen op iOS
  • Mechanisme — locatiebepaling op basis van zendmasten zonder continu GPS
  • Nauwkeurigheid — 500 m – 3 km afhankelijk van dichtheid mobiele infrastructuur
  • Triggers — wisselen van mast, GPS inschakelen door andere apps, Wi-Fi wisselen
  • Toestemming — iOS 13+ vereist Always voor SLC op de achtergrond
  • Energieverbruik — 0,1–0,5% per uur versus 5–10% voor continu GPS
  • Beste praktijk — debounding van gebeurtenissen, BGTaskScheduler voor langdurige verwerking

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook