Geolocation API in React-componenten
Vraag de locatie van de gebruiker op en volg deze met de Geolocation API, handel machtigingen af en ruim watchers op
Geolocation API in React-componenten is een gratis React Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject React Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus React Academy bevat in totaal 4 lessen.
Eenmalige positielezing
navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options) vraagt eenmalig de locatie van het apparaat op. De succescallback ontvangt een object van het type GeolocationPosition. Dit is geschikt wanneer je de locatie één keer nodig hebt, bijvoorbeeld om na een klik op een knop de dichtstbijzijnde winkel te vinden, in plaats van voortdurende bewegingen te volgen.
De positie continu volgen
navigator.geolocation.watchPosition(successCallback, errorCallback, options) roept de callback continu aan wanneer de positie van het apparaat verandert. De functie retourneert een numerieke watchId. Dit is geschikt voor realtimegebruik, zoals het volgen van bezorgingen of stapsgewijze navigatie, waarbij de positie actueel moet blijven.
Het positieobject
Het object GeolocationPosition bevat een eigenschap coords met latitude, longitude en accuracy (in meters). Aanvullende optionele velden zijn altitude, altitudeAccuracy, heading en speed. Het veld timestamp legt vast wanneer de positie is bepaald.
Foutcodes voor geolocatie
De foutcallback ontvangt een GeolocationPositionError met een numerieke eigenschap code. Code 1 is PERMISSION_DENIED (de gebruiker heeft geweigerd), code 2 is POSITION_UNAVAILABLE (hardware- of netwerkfout) en code 3 is TIMEOUT (het verzoek duurde te lang). Handel altijd alle drie de gevallen af.
De watch stoppen bij het opruimen
Een listener van watchPosition blijft onbeperkt actief totdat je deze stopt. Retourneer in useEffect een opschoonfunctie die navigator.geolocation.clearWatch(watchId) aanroept. Als je het opruimen vergeet, blijft het volgen actief nadat de component is ontkoppeld. Dat verbruikt batterij en kan mogelijk de status van een ontkoppelde component bijwerken.
De useGeolocation-hook bouwen
Een useGeolocation-hook beheert een statusvariabele met vier mogelijke waarden: idle (nog niet aangevraagd), loading (aanvraag wordt verwerkt), success (positie ontvangen) en error (mislukt). De hook bewaart ook de position en errorMessage in de status. Componenten krijgen zo een duidelijke, consistente interface.
Afwijzing van toestemming netjes afhandelen
Wanneer de gebruiker geolocatie weigert, toon je een nuttige melding waarin je uitlegt waarom de functie toegang tot de locatie nodig heeft en hoe de gebruiker die toegang opnieuw kan inschakelen in de browserinstellingen. Toon gebruikers nooit een onbewerkte foutcode. Bied handmatige adresinvoer als terugvaloptie, zodat de functie ook zonder locatietoestemming bruikbaar blijft.
Vereiste van HTTPS voor geolocatie
Net als de meeste krachtige browser-API's is geolocatie beperkt tot veilige contexten. navigator.geolocation is undefined op gewone HTTP-pagina's. Tijdens de ontwikkeling werkt het op localhost zonder HTTPS. Zorg er in productie altijd voor dat je app via HTTPS wordt aangeboden, anders krijgen gebruikers nooit een toestemmingsvraag.
Opties voor nauwkeurigheid en tijd
Het optionele derde argument van getCurrentPosition en watchPosition accepteert een optiesobject. enableHighAccuracy: true vraagt om GPS-nauwkeurigheid, maar kost meer energie. timeout bepaalt hoeveel milliseconden je maximaal wacht. maximumAge staat een gecachte positie toe als die binnen het opgegeven aantal milliseconden is bepaald.
Praktische toepassingen
Geolocatie maakt functies mogelijk zoals "vind een winkel bij mij in de buurt", het volgen van bezorgers op een kaart, weerinformatie op basis van de huidige stad, berichten met een locatie en afstandsberekeningen tussen de gebruiker en een bestemming. Leg gebruikers altijd duidelijk uit waarom de app hun locatie nodig heeft voordat je om toestemming vraagt.
Geolocatie testen tijdens de ontwikkeling
Met Chrome DevTools kun je een valse apparaatlocatie instellen. Open DevTools, ga naar het menu met de drie punten, kies Meer hulpprogramma's en vervolgens Sensoren. Je kunt coördinaten voor de breedtegraad en lengtegraad invoeren om elke locatie te simuleren. Dat is veel sneller dan fysiek naar een andere plek reizen om locatieafhankelijke functies te testen.
Foutcodes voor geolocatie
Wat betekent een waarde van 1 voor de code van een GeolocationPositionError?
Samenvatting van de les: Geolocation API in React
Gebruik getCurrentPosition voor een eenmalige lezing en watchPosition om de positie continu te volgen. Roep in het opruimen van useEffect altijd clearWatch aan. Bouw een useGeolocation-hook met de statussen idle, loading, success en error. Handel geweigerde toestemming netjes af en onthoud dat geolocatie in productie HTTPS vereist.
Leer React met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 88
- Lessen
- 324
Veelgestelde vragen
Is de les “Geolocation API in React-componenten” gratis?
Ja — de volledige tekst van “Geolocation API in React-componenten” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus React Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus React Academy bevat in totaal 4 lessen.
Wat leer ik in “Geolocation API in React-componenten”?
Vraag de locatie van de gebruiker op en volg deze met de Geolocation API, handel machtigingen af en ruim watchers op Je oefent met React Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met React Academy te beginnen?
Ervaring vooraf is niet nodig. React Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Geolocation API in React-componenten”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over React Academy?
Ja. Elke les over React Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Clipboard API: kopiëren en plakken in React
- Geolocation API in React-componenten
- Notifications API en machtigingen afhandelen
- IntersectionObserver voor scrollgestuurde effecten