Skip to main content
Wat is geofencing? Zo werkt een geofence, met voorbeelden
Guides

Wat is geofencing? Zo werkt een geofence, met voorbeelden

Geofencing start een actie zodra een telefoon, voertuig of AI-agent een gebied binnengaat of verlaat. Hoe het werkt, waar je het gebruikt, de limieten van Android en iOS, en hoe groot een geofence moet zijn voor de nauwkeurigheid die je hebt, berekend.

Brent van der HeidenLaatste update 12 min read
#geofencing#wat is geofencing#geofence#geofence betekenis#geofencing marketing#point in polygon#location based services#api

Geofencing maakt van een plek een trigger. Je tekent een virtuele grens op een kaart, de geofence, en het systeem reageert zodra iets die grens kruist. Rijdt een bezorgbus de straat van een klant in, dan zet een pakketapp de bestelling op "bijna daar". Verlaat de telefoon van een monteur de bouwplaats, dan stopt de urenregistratie. Drijft een drone richting verboden luchtruim, dan trekt de flight controller hem terug. Alle drie zijn geofences die hetzelfde doen: een locatie omzetten in een event.

Deze gids legt uit wat geofencing is, hoe de onderliggende test werkt, hoe groot een geofence moet zijn voor de nauwkeurigheid die je in de praktijk krijgt, wat Android en iOS toestaan, en hoe je geofencing voor een hele vloot op een server draait. Die laatste meting deden we op de gemeentegrens van Amsterdam. De nauwkeurigheidstabellen en de point-in-polygon-benchmark zijn onze eigen berekeningen en metingen; de methode staat aan het eind van elke sectie.

Wat is geofencing?

Geofencing bestaat uit twee delen: een vorm en een regel.

De vorm is een gebied op het aardoppervlak. De twee gangbare varianten zijn een cirkel, bepaald door een middelpunt en een straal in meters, en een polygoon, bepaald door een geordende lijst punten met breedte- en lengtegraad die samen een omtrek vormen. Een cirkel volstaat voor "binnen 200 meter van deze winkel". Een polygoon heb je nodig voor "binnen deze bezorgzone" of "binnen de gemeentegrens", waar de grens onregelmatig loopt.

De regel bepaalt wat er gebeurt als iets de vorm kruist. De twee events die ertoe doen zijn enter (een gevolgd object gaat van buiten naar binnen) en exit (van binnen naar buiten). De meeste platforms voegen een derde toe, dwell, dat pas afgaat als het object een ingestelde tijd binnen blijft. Gebruik dwell als enter te vaak zou afgaan, bijvoorbeeld voor mensen die langs een winkel lopen.

Hoe werkt geofencing?

Bij elke positie-update draait het systeem een containment-test: ligt deze coördinaat binnen deze vorm?

Voor een cirkel is dat een afstandsberekening. Meet de grootcirkelafstand van het apparaat tot het middelpunt; is die kleiner dan de straal, dan ligt het apparaat binnen. Voor een polygoon is de standaardmethode de ray-casting point-in-polygon-test: trek een denkbeeldige lijn vanaf het punt in één richting en tel hoe vaak die de randen van de polygoon kruist. Een oneven aantal betekent binnen, een even aantal buiten.

De geometrie is goedkoop. Het lastige zit eromheen:

  • Nauwkeurigheid. Een positiefix is een schatting. Een telefoon die stilligt, meldt posities die rondzwerven, en dat levert spookevents op bij een grens. De volgende sectie zet daar getallen bij.
  • Batterij. Continu GPS uitlezen trekt een telefoon leeg. Mobiele besturingssystemen hebben zuinige geofencing-API's die wifi- en zendmastsignalen gebruiken en de app pas wekken als een grens waarschijnlijk wordt gekruist.
  • Status. Een enter-event heeft alleen zin als de vorige status buiten was. De engine moet per object en per geofence de laatst bekende status onthouden.

Hoe groot een geofence moet zijn: nauwkeurigheid, berekend

Android geeft locatienauwkeurigheid op als de straal waarbinnen de echte positie met 68 procent zekerheid ligt (Location.getAccuracy()). Typische waarden komen van de bronnen zelf: smartphones met GPS zijn onder open hemel doorgaans tot op 4,9 m nauwkeurig, volgens GPS.gov, en de geofencing-gids van Android noemt 20 tot 50 m voor wifi-locatie, oplopend tot enkele honderden meters of zelfs kilometers zonder wifi.

We modelleerden de positiefout als een tweedimensionale normale verdeling met die 68-procentstraal en berekenden hoe vaak één fix buiten een cirkelvormige geofence valt als de telefoon precies in het midden staat:

Locatiebron (68% nauwkeurigheid)Geofence 25 m50 m100 m150 m250 m500 m
GPS, open hemel (5 m)0%0%0%0%0%0%
Wifi, goed (20 m)16,9%0,08%0%0%0%0%
Wifi, gemiddeld (50 m)75,2%32,0%1,05%0,004%0%0%
Geen wifi, zendmast (300 m)99,2%96,9%88,1%75,2%45,3%4,2%

"0%" betekent minder dan 0,001 procent. De vuistregel die eruit volgt: maak de straal minstens twee keer de 68-procentnauwkeurigheid. Dan blijft een telefoon in het midden bij 99 procent van de fixes binnen, en bij 2,5 keer bij 99,9 procent. Voor gemiddelde wifi-nauwkeurigheid is dat 100 tot 125 m, en dat past bij de minimale straal van 100 tot 150 m die Android adviseert.

Het midden is het beste geval. Een apparaat dat vlak bij de rand staat, zoals een bestelbus op een depotterrein 10 m binnen het hek, staat veel vaker aan de verkeerde kant:

Locatiebron5 m binnen de rand10 m25 m50 m100 m
GPS, open hemel (5 m)6,6%0,13%0%0%0%
Wifi, goed (20 m)35,3%22,5%3,0%0,01%0%
Wifi, gemiddeld (50 m)44,0%38,1%22,5%6,6%0,13%
Geen wifi, zendmast (300 m)49,0%48,0%45,0%40,1%30,7%

De oplossing is hysterese: laat een positie pas van status wisselen als die een bufferafstand voorbij de rand ligt. Met een buffer gelijk aan de nauwkeurigheidswaarde zakt het wifi-geval op 10 m binnen de rand van 38,1 procent fixes aan de verkeerde kant naar 3,5 procent, en het GPS-geval naar nul. Combineer het met een dwell-tijd en één verdwaalde fix levert geen event meer op.

Methode. Standaardafwijking per as = nauwkeurigheid / 1,5096, de 68-procentstraal van een tweedimensionale normale verdeling. Aandeel buiten een cirkel met straal R voor een apparaat in het midden = exp(-R² / 2σ²). Aandeel aan de verkeerde kant van een rechte rand op afstand d = Φ(-d/σ), met een buffer h: Φ(-(d+h)/σ). Fixes worden als onafhankelijk behandeld, wat echte ontvangers niet zijn, omdat hun fouten langzaam verlopen. Lees de getallen als aandeel van de fixes, niet als events per uur. Script: scripts/seo/blog-keyword-research/what-is-a-geofence.mjs, output: docs/blog-keyword-research/what-is-a-geofence-2026-09-30.json.

Geofencing op Android en iOS: de platformlimieten

Op een telefoon draai je de containment-test zelden zelf. Je registreert geofences bij het besturingssysteem, dat ze op de achtergrond bewaakt met zuinige locatiebepaling en je app wekt bij een overgang. Daar horen limieten bij waar je omheen moet ontwerpen:

Android (Geofencing API)iOS (Core Location condition monitoring)
Geofences per app100 per app, per apparaatgebruiker20 condities van elk type
VormCirkelCirkel
EventsEnter, exit, dwell (met een loitering delay)Satisfied, unsatisfied
VertragingMeestal onder 2 minuten; 2 tot 3 minuten met achtergrondlimieten voor locatie; tot 6 minuten voor een apparaat dat lang stillagNiet als getal vermeld
Aanbevolen minimale straal100 tot 150 mNiet als getal vermeld

Bronnen: de geofencing-gids van Android en Apples documentatie over condition monitoring, waarin staat dat Core Location voorkomt dat één app meer dan 20 condities van welk type ook tegelijk bewaakt.

Twee praktische gevolgen. Ten eerste bewaken beide platforms cirkels, dus een polygoon-geofence op een telefoon is een cirkel die de polygoon omsluit, plus je eigen polygoontest zodra de app wakker wordt. Ten tweede kan een winkelketen met 500 filialen ze niet allemaal registreren. Houd de volledige lijst op een server bij, registreer de dichtstbijzijnde 20 (iOS) of 100 (Android), en ververs die set als de gebruiker ver genoeg is verplaatst, bijvoorbeeld zodra die een grote "ververs"-geofence rond de huidige positie verlaat.

Geofencing op de server: point in polygon met een H3-voorfilter

Vloten en asset trackers draaien geofencing meestal op de server: elk voertuig stuurt posities en de backend test elke positie tegen veel zones. Dan tellen de kosten van de test, en die groeien met het aantal hoekpunten van de polygoon.

We maten het op een echte grens: de gemeente Amsterdam uit OpenStreetMap, twee buitenringen met 7.677 hoekpunten. We genereerden 1.000.000 willekeurige punten binnen de bounding box en testten elk punt twee keer.

MethodeTijd per puntTotaal voor 1.000.000 punten
Ray casting op de volledige polygoon13,3 µs13,3 s
H3-voorfilter op resolutie 9, ray casting alleen bij de grens2,3 µs2,3 s

Het voorfilter bedekt de polygoon met H3-zeshoeken van ongeveer 0,1 km². De 464 cellen waar de grens doorheen loopt, krijgen het label "controleren", de 2.520 cellen die volledig binnen liggen het label "binnen", en de rest ligt buiten. Voor elk punt bereken je de H3-cel, een bewerking met constante tijd, en alleen bij een "controleren"-cel draai je de volledige polygoontest. Dat gold voor 9,2 procent van de punten. De uitkomsten kwamen voor alle 1.000.000 punten overeen met de volledige test, en het opbouwen van de opzoektabel kostte 135 ms.

Het voorfilter was op deze polygoon 5,9 keer sneller, en de winst groeit met het aantal hoekpunten, omdat de meeste punten nooit bij de lus over de hoekpunten komen. Gebruik het als je duizenden voertuigen om de paar seconden tegen veel zones test.

Methode. @turf/boolean-point-in-polygon voor de ray casting, h3-js 3.7.2, Node 23 op een Apple M2 Pro. Grenscellen gevonden door elke polygoonrand om de 5 m te bemonsteren; binnencellen via H3 polyfill minus de grenscellen. Hetzelfde script als hierboven; grensdata © OpenStreetMap contributors (ODbL), relatie 47811, opgehaald op 30 september 2026. Tijden hangen af van de machine; de verhouding is het bruikbare getal.

Waar de coördinaten vandaan komen

Een geofence-check is zo goed als de coördinaat die je erin stopt, en die komt zelden binnen als nette breedte- en lengtegraad.

In de praktijk begin je met een adres ("Hauptstraße 12, Berlijn"), een plaatsnaam ("het centrale magazijn") of een ruw signaal. Die omzetten naar de [lng, lat] die een geofence-test nodig heeft, is het werk van geocoding en reverse geocoding:

  • Geocoding zet een adres of plaatsnaam om in coördinaten, zodat je een geofence rond de locatie van een klant bouwt of controleert of de bestemming van een order in een bezorgzone valt.
  • Reverse geocoding zet coördinaten terug om in een adres, zodat een enter-event "aangekomen op Hauptstraße 12" kan melden in plaats van "aangekomen op 52.5200, 13.4050".
  • Plaatsdata laat je geofences verankeren aan bekende points of interest in plaats van aan met de hand getekende vormen.

Voorbeelden van geofencing

  • Bezorging en logistiek. Start events als "onderweg" en "aangekomen"; krijg een melding als een voertuig zijn geplande corridor verlaat.
  • Buitendienst en personeel. Automatisch in- en uitchecken als medewerkers een klus binnenkomen of verlaten.
  • Retail en marketing. Stuur een relevante aanbieding als een klant die daarvoor toestemming gaf, bij een winkel is.
  • Vloot- en assettracking. Krijg een melding zodra materieel een toegestaan gebied verlaat.
  • Veiligheid en compliance. Waarschuw als een apparaat een gevarenzone of verboden luchtruim binnengaat.
  • Slimme woning. Zet de verwarming aan als de laatste telefoon van het huishouden richting huis gaat.

Geofencing in marketing, en privacy

Geofencing-marketing gebruikt dezelfde enter- en dwell-events om een bericht of advertentie te tonen: een kortingsbon als een klant een winkelcentrum binnenloopt, een banner voor bezoekers van een beurs. Het werkt met locatiegegevens die een persoon identificeren, en in de EU noemt de AVG locatiegegevens expliciet in de definitie van persoonsgegevens (artikel 4, lid 1). Een geofencing-campagne heeft dus een rechtsgrond nodig voor die verwerking, en voor app-meldingen en advertenties betekent dat in de praktijk toestemming die de gebruiker kan intrekken.

Locatiegeschiedenis trekt ook opsporingsdiensten aan. Een geofence warrant vraagt een databeheerder om alle apparaten die in een tijdvenster in een gebied waren. In United States v. Smith (9 augustus 2024) oordeelde het Amerikaanse Court of Appeals for the Fifth Circuit dat geofence warrants moderne algemene bevelen zijn en in strijd met het Vierde Amendement, al werd het bewijs in die zaak toch toegelaten op grond van de good-faith-uitzondering. In december 2023 maakte Google bekend dat Tijdlijn, de locatiegeschiedenis, op het apparaat van de gebruiker wordt opgeslagen. Voor je eigen product geldt dezelfde les als voor alle persoonsgegevens: evalueer geofences waar de data al staat, bewaar ruwe positiegeschiedenis niet langer dan nodig, en sla waar het kan events op in plaats van routes.

Geofencing voor AI-agents

AI-agents voor logistiek, buitendienst of reizen moeten vragen beantwoorden als "is deze chauffeur al binnen de depotzone?" of "welke van deze winkels ligt binnen 15 minuten van de klant?". Daarvoor heeft de agent twee dingen nodig: schone locatiedata en een grens om tegen te testen. De agent haalt een coördinaat op via een geocoding-API, laadt een geofence als GeoJSON-polygoon en voert de containment-check uit als tool call. Combineer geofencing met een isochroon, een reistijdgrens in plaats van een vaste vorm, en de agent kan redeneren over bereikbaarheid. Dat ligt dichter bij hoe mensen over "dichtbij" denken.

Zo bouw je het goed

Een betrouwbare geofence draait om vier dingen:

  1. Stem de grootte af op je nauwkeurigheid. Minstens twee keer de 68-procentnauwkeurigheid, 100 tot 150 m bij locatie op wifi-niveau.
  2. Voeg hysterese en dwell toe. Een buffer voorbij de rand en een minimale tijd binnen halen de meeste spookevents weg.
  3. Sla grenzen netjes op. GeoJSON is de feitelijke standaard; vereenvoudig complexe polygonen voordat je ze naar een apparaat stuurt.
  4. Gebruik nauwkeurige coördinaten. Een goede geocoding- en reverse-geocoding-API doet er meer toe dan de geometriecode.

MapAtlas levert de Geocoding API met forward en reverse geocoding, en de Isochrone API voor reistijdgrenzen, verwerkt in de EU. Coördinaten en adressen controleer je met de hand in de coördinatentool, en een zone met vaste straal teken je met de radiuskaart.

Verder lezen

Veelgestelde vragen

Wat is geofencing?

Geofencing is het gebruik van een virtuele grens, een geofence, rond een gebied in de echte wereld. Zodra een apparaat, voertuig of software-agent dat gebied binnengaat of verlaat, volgt een actie. De grens is een cirkel (een middelpunt plus een straal) of een polygoon rond een gebouw, een bezorgzone of een wijk. Kruist een gevolgde positie die grens, dan vuurt het systeem een event af: een melding, een check-in, een webhook of een database-update. Geofencing is een van de basisbouwstenen van location based services.

Hoe werkt geofencing?

Een locatiebron (GPS, wifi, zendmasten of IP) meldt een positie. Een containment-test bepaalt of die positie binnen elke geofence ligt: een afstandscheck voor cirkels, een point-in-polygon-test voor polygonen. Verandert de uitkomst van buiten naar binnen, dan volgt een enter-event, van binnen naar buiten een exit-event. De geometrie is goedkoop. Het echte werk zit in locatienauwkeurigheid, batterijverbruik en het voorkomen van valse triggers bij de rand.

Hoe groot moet een geofence zijn?

Minstens twee keer de locatienauwkeurigheid die je kunt verwachten, en groter als valse triggers duur zijn. De geofencing-gids van Android adviseert een minimale straal van 100 tot 150 meter, omdat wifi-locatie meestal tot op 20 à 50 meter nauwkeurig is. Onze berekening bevestigt dat: bij 50 meter nauwkeurigheid meldt een telefoon in het midden van een geofence van 100 meter in ongeveer 1 procent van de fixes een positie erbuiten, bij 150 meter in 0,004 procent. Met GPS onder open hemel, 5 meter nauwkeurigheid, is een geofence van 25 meter al stabiel.

Hoeveel geofences kan een app volgen op Android en iOS?

Android staat 100 actieve geofences toe per app per apparaatgebruiker. Op iOS laat Core Location geen enkele app meer dan 20 condities tegelijk monitoren, geografische regio's inbegrepen. Apps die er meer nodig hebben, houden de volledige lijst op een server bij en registreren op het apparaat alleen de dichtstbijzijnde geofences, die ze verversen terwijl de gebruiker zich verplaatst.

Wat is geofencing in marketing?

Geofencing-marketing stuurt een bericht of toont een advertentie zodra iemand een gebied binnengaat, zoals een winkel, een beurs of de parkeerplaats van een concurrent. In de EU zijn de locatiegegevens daarbij persoonsgegevens onder de AVG, die locatiegegevens expliciet noemt in de definitie van persoonsgegevens. Zo'n campagne heeft dus een rechtsgrond nodig, in de praktijk toestemming voor app-meldingen en advertenties. Dezelfde techniek zonder toestemming is precies waar toezichthouders en rechters bezwaar tegen maken.

Wat is het verschil tussen een geofence en een geofence warrant?

Een geofence in software is een grens die je zelf definieert om gedrag in een app te starten, zoals een bezorgmelding of een check-in. Een geofence warrant is een juridisch verzoek aan een databeheerder om te onthullen welke apparaten zich in een tijdvenster in een gebied bevonden. In United States v. Smith (9 augustus 2024) oordeelde het Amerikaanse Court of Appeals for the Fifth Circuit dat geofence warrants moderne algemene bevelen zijn en in strijd met het Vierde Amendement. Dit artikel gaat over de technische variant.

Was dit nuttig? Deel het.

Over de auteur

Brent van der Heiden

Geschreven door

Brent van der Heiden

Co-Founder & CEO at MapAtlas

Brent built MapAtlas out of a conviction that developers deserve location APIs with fair pricing and genuine end-user privacy. Before that he co-founded MapMetrics, a community mapping and navigation app. He writes about geospatial infrastructure, map data, AI search visibility, and how location data powers the products people rely on every day.

Alle artikelen bekijken →
Terug naar blog