react native에서 내 위치의 좌표를 알고싶다. react-geolocation을 사용하려고 했는데 expo로할때는 따로 있다는걸 알았다.
expo install expo-location
선언은 요로코롬 해주면된다.
import * as Location from 'expo-location';
await Location.requestForegroundPermissionsAsync() 권한 요청
const handleMyLocation = async () => {
try {
let { status } = await Location.requestForegroundPermissionsAsync()
console.log(status)
if (status !== 'granted') {
console.log('Permission to access location was denied')
return
}
navigation.navigate('myLocationMap')
} catch (error) {
console.error('현재 위치를 가져오는 중 오류 발생:', error)
}
}
권한 요청을 해주면된다.위를 작동시키면 어플에서 expo 권한 요청이 나오게 되고, 권한 요청을 받으면 그 이후부터는 내 위치를 잡을수 있게된다. granted는 거부했냐 허용했냐를 판별하는 변수로 granted가 없다면 허용되지 않는경우인것.
const getLocation = async () => {
try {
//현재 위치 정보 얻기 -> 시스템 location
const locationData = awaitLocation.getCurrentPositionAsync()
const latitude = locationData['coords']['latitude'] // 위도 가져오기
const longitude = locationData['coords']['longitude'] // 경도 가져오기
const location = await Location.reverseGeocodeAsync({latitude, longitude}, {useGoogleMaps: false});//경도와 위도로 location 도시명등을 가져온다
return
} catch (error) {
console.error(error)
}
}
``` js
위도와 경도를 가져올수 있게된다. 만약 허용을 한상황이고 gps가 켜져있다면 내위치가 찍힐것이다. reverserGeo를 이용해 내가 어디에있는지 대략적으로 알수있게해준다.
출처: https://ohrora-developer.tistory.com/10