Develop/Flutter
Chapter 13 : Project 오늘도 출첵
HaeYoung_12
2024. 8. 13. 18:42
1. 사전지식
1) Geolocator 플러그인
- 지리와 관련된 기능을 쉽게 사용할 수 있는 플러그인
위치 서비스 권한 확인 받기
isLocationServiceEnabled()
함수 사용- boolean 값으로 활성화 되어 있으면, true, 아니면 false 반환
final isLocationEnabled= await Geolocator.isLocationServiceEnabled();
- 1.2.함수 둘다 LocationPermission enum을 반환함.
final checkedPermission=await Geolocator.checkPermission(); // 1. 권한 확인
final checkedPerssion= await Geolocator.requestPermission(); //2. 권한 요청
- LocationPermission 반환값
LocationPermission | 설명 |
---|---|
denied | 거절상태, 기본적으로 반환되는 상태. requsetPermission() 함수를 이용해 다시 권한 요청가능 |
deniedForever | 완전히 거절되는 상태, requsetPermission() 함수 실행 안됨. 직접 기기 설정 화면에서 사용자가 직접 권한을 허가해야함. |
whileUse | 앱이 사용중일때만 허가된 권한 |
always | 100% 허가 상태 |
unableToDetermine | 알수 없음. 권한 요청이 불가한 특정 인터넷 브라우저에서 반환되는 값으로 앱에서는 해당사항 없음. |
현재 위치 지속적으로 반환 받기
getPositionStream()
함수를 사용하면 현재 위치가 변경될때마다 현재 위칫값을 Position 클래스 형태로 주기적으로 반환받을 수 있음.
Geolocator.getPositionStream().listen((Position position)){
print(position);
});
- Position 클래스 주요 속성
속성 | 설명 |
longitude | 경도 |
latitude | 위도 |
timestamp | 위치가 확인된 날짜 및 시간 |
accuracy | 위치 정확도 |
speed | 이동 속도 |
speedAccuracy | 이동 속도 정확도 |
두 위치간의 거리 구하기
- distanceBetween() 함수를 사용하면 두 위치 간의 거리를 미터 단위로 반환받음.
// 두 위치 간의 거리응 double 값으로 반환
final distance=Geolocator.distanceBetween(
시작점위도,
시작점경도,
끝지점위도,
끝지점경도,
);