Ga naar hoofdinhoud

Location

expo-location laat het toe om de locatie van de gebruiker te bepalen. Je app kan de huidige locatie opvragen of een listener registreren die de locatie bijhoudt.

installatie

expo-location is een aparte package die je moet installeren. Dit doe je met de volgende commando:

npx expo install expo-location

Gebruik

Ook voor het gebruik van expo-location moet je eerst de permissies vragen. Dit doe je aan de hand van de requestForegroundPermissionsAsync functie. We gaan in dit voorbeeld de permissies direct vragen wanneer het App component wordt gerenderd. We doen dit aan de hand van een useEffect hook.

import React, { useState, useEffect } from "react";
import { Platform, Text, View, StyleSheet } from "react-native";
import {
requestForegroundPermissionsAsync,
LocationObject,
getCurrentPositionAsync,
} from "expo-location";

const App = () => {
const [location, setLocation] = useState<LocationObject | null>(null);
const [errorMsg, setErrorMsg] = useState<string | null>(null);

useEffect(() => {
(async () => {
let { status } = await requestForegroundPermissionsAsync();
if (status !== "granted") {
setErrorMsg("Permission to access location was denied");
return;
}

let location = await getCurrentPositionAsync({});
setLocation(location);
})();
}, []);

let text = "Waiting..";
if (errorMsg) {
text = errorMsg;
} else if (location) {
text = JSON.stringify(location);
}

return (
<View style={styles.container}>
<Text style={styles.paragraph}>{text}</Text>
</View>
);
};
export default App;

Meer informatie

Voor meer informatie over expo-location kan je de documentatie raadplegen.