[kotlin] GPS 및 지도 API를 활용한 위치 정보 가져오기 방법 익히기

안드로이드 앱을 개발하다보면 GPS 및 지도 API를 활용하여 사용자의 현재 위치 정보를 가져와야 하는 경우가 많습니다. 따라서 이번 블로그에서는 Kotlin으로 안드로이드 앱을 개발하면서 GPS를 통해 위치 정보를 가져오고, 지도 API를 통해 지도에 표시하는 방법에 대해 알아보겠습니다.

GPS를 통해 현재 위치 정보 가져오기

안드로이드에서 GPS를 통해 현재 위치 정보를 가져오려면 FusedLocationProviderClient를 사용하여 위치 업데이트를 요청해야 합니다. 아래는 GPS를 통해 현재 위치 정보를 가져오는 간단한 예제 코드입니다.

// 권한 체크 및 요청
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), REQUEST_LOCATION_PERMISSION)
} else {
    fusedLocationClient.lastLocation.addOnSuccessListener { location : Location? ->
        // 위치 정보 가져오기 성공 시 처리
        if (location != null) {
            val latitude = location.latitude
            val longitude = location.longitude
            // 가져온 위치 정보를 활용하여 원하는 작업 수행
        }
    }
}

위 코드에서 FusedLocationProviderClient를 사용하여 마지막으로 알려진 위치를 가져오고 있습니다. 또한, 위치 정보를 가져오기 위한 권한을 확인하고 요청하고 있습니다.

지도 API를 활용하여 현재 위치 표시하기

지도 API를 활용하여 현재 위치를 지도에 표시하려면 SupportMapFragment를 사용하여 지도를 화면에 표시하고, Marker를 사용하여 현재 위치를 지도에 표시해야 합니다. 아래는 현재 위치를 지도에 표시하는 간단한 예제 코드입니다.

val supportMapFragment = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment
supportMapFragment.getMapAsync { googleMap ->
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), REQUEST_LOCATION_PERMISSION)
    } else {
        googleMap.isMyLocationEnabled = true // 현재 위치 표시
    }
}

위 코드에서는 SupportMapFragment를 사용하여 지도를 가져오고 있으며, isMyLocationEnabled 속성을 사용하여 현재 위치를 표시하고 있습니다.

마치며

이제 Kotlin을 사용하여 안드로이드 앱에서 GPS를 통해 위치 정보를 가져오고, 지도 API를 통해 지도에 표시하는 방법에 대해 알아보았습니다. 안드로이드 앱을 개발하면서 GPS 및 지도 기능을 활용할 일이 많으므로 이를 위한 기본적인 이해는 매우 중요합니다. 계속해서 공부하고 연습하여 안드로이드 앱 개발에서 위치 정보 기능을 더욱 능숙하게 활용할 수 있도록 노력해보세요.

참고 문헌: