상세 컨텐츠

본문 제목

안드로이드에서 GPS 사용 하는 방법

공부/안드로이드

by dofury 2023. 3. 26. 16:11

본문

728x90

현재  대학교에서 진행하고 있는 프로젝트에서 앱쪽을 담당하고 있다.

앱의 기능 중에는 GPS를 통해 현재 위치랑 임의의 위치를 비교하는 기능을 필요로 한다.

그래서 한번 알아보고자 한다

 


<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

1. 처음에는 안드로이드 AndroidManifest.xml 에서 위치 권한을 받아야 한다.

 

GPS를 사용하기 위해서 우선적으로 해야하는 것이다.

 

val locationManager = getSystemService<Any>(Context.LOCATION_SERVICE) as LocationManager

2. 위치 서비스를 관리하는 LocationManager 객체를 생성한다.

 

        val locationListener: LocationListener = object : LocationListener {
            override fun onLocationChanged(location: Location?) {
                // 위치 정보가 업데이트 될 때마다 호출됩니다.
            }

            override fun onStatusChanged(provider: String, status: Int, extras: Bundle) {}
            override fun onProviderEnabled(provider: String) {}
            override fun onProviderDisabled(provider: String) {}
        }

3. 위치 정보를 받기 위해 LocationListener 인터페이스를 구현한 리스너 객체를 생성한다.

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, locationListener);

4. 위치 정보를 요청한다. 위치 제공자(provider)와 최소 업데이트 시간, 최소 거리 변화 등을 설정할 수 있다.

 

해당 예시의 경우 현재 위치를 1초마다 갱신한다.

        val currentLocation: Location =
            locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER)
            //현재 위치

        val destinationLocation = Location("")
        destinationLocation.setLatitude(37.123456)
        destinationLocation.setLongitude(127.123456)

5. 임의의 위치를 설정한다.

 

val distance: Float = currentLocation.distanceTo(destinationLocation)

6. 두 지점간의 거리를 계산한다.

 

이를 이용해 오차가 얼마이상 나지 않으면 (반경) 비교에 사용할 수 있다.

728x90

관련글 더보기

댓글 영역