반응형
안녕하세요 오늘은 Google Map에서 세부 기능을 이용해보는 포스팅을 작성해보겠습니다.
지도 출력
기본적인 지도 출력하는 예제는 이전에 작성한 코드를 토대로 사용하였습니다.
최초 출력시에는 위도, 경도가 (0.0, 0.0) 인 지점으로 기본 셋팅합니다.
val cameraPositionState = rememberCameraPositionState {
position = CameraPosition.fromLatLngZoom(LatLng(0.0, 0.0), 10f)
}
마지막 위치 이동
위에 작성한 코드의 위치는 원하는 위치 지점이 아니니 현재 위치에서 가까웠던 지점으로 마지막으로 탐색된 위치로 바로 이동하는 코드를 적용합니다.
var fusedLocationClient =
LocationServices.getFusedLocationProviderClient(context)
fusedLocationClient.lastLocation
.addOnSuccessListener { location: Location? ->
if (location != null) {
val update = CameraUpdateFactory.newLatLngZoom(
LatLng(location.latitude, location.longitude),
15f
)
cameraPositionState.move(update)
}
}
.addOnFailureListener {
it.printStackTrace()
}
코드설명
- LocationServices.getFusedLocationProviderClient(context).lastLocation
- Google Play Service API에서 앱에 필요한 위치정보를 제공하는 FusedLocationProviderClient에서 lastLocation을 얻습니다.
- lastLocation은 내 디바이스에서 가장 최근에 탐색된 위치를 나타냅니다.
- 위치 기능을 껐다면 캐시도 지워지므로 null을 출력할 수 있습니다.
- addOnSuccessListener
- 마지막으로 탐색한 위치를 가져오는데 성공하면 호출됩니다.
- 획든한 위치를 기본 위치를 기준으로 한 cameraPositionState의 cameraPositionState.move() 함수를 이용하여, 현재 Position을 이동합니다.
- addOnFailureListenr
- 마지막으로 탐색한 위치를 가져오는데 실패하면 호출됩니다.
- 마지막으로 탐색한 위치를 가져오는데 실패하면 호출됩니다.
getLastLocation() 특징
- 장점
- 캐싱 데이터를 반환하므로 비교적 빠르게 위치를 가져옵니다.
- 배터리 사용량을 최소화하여 위치를 가져옵니다.
- 단점
- 기기 재부팅, 위치 기능을 off > on 한 경우는 null이 반환된다.
- 캐싱 데이터이므로 최신 위치가 아닐 수 있다.
오늘은 Google Map 지도 출력 시 마지막 위치로 이동하는 방법에 대해 작성해 보았습니다.
잘못된 내용이 있다면 댓글 부탁드리고, 내용이 좋았다면 공감, 구독 부탁드려요!
반응형
'DEV > Android' 카테고리의 다른 글
[TIL-230718] 주소 텍스트로 위치 마킹하기 (0) | 2023.07.18 |
---|---|
[TIL-230706] Jetpack Compose - Focusing (1) | 2023.07.06 |
[TIL-230623] StateFlow 알아보기 (0) | 2023.06.28 |
[TIL-230626] Android Flow 알아보기 - 2 (0) | 2023.06.27 |
[TIL-230626] Android Flow 알아보기 - 1 (0) | 2023.06.26 |