본문 바로가기

안드로이드

[Android] 카카오 맵 API 현재위치에 마커찍기

728x90

이전 게시물에 이어서 현재위치 좌표를 찍어보는 것을 해보도록 하겠습니다 .

 

https://jangstory.tistory.com/41

 

[Android] 카카오맵 Api 사용하기

카카오 Map API 를 사용하기 위해선 당연히 카카오 개발자 홈페이지에서 앱 등록이 필요합니다. 밑의 사이트 가이드를 보고 따라해주세요. https://apis.map.kakao.com/android/guide/#step1 개발자 등록 하는

jangstory.tistory.com

 

카카오 Map API 를 사용하기 위해선 당연히 카카오 개발자 홈페이지에서 앱 등록이 필요합니다. 밑의 사이트 가이드를 보고 따라해주세요.

 

 https://apis.map.kakao.com/android/guide/#step1 

 

 

메소드 하나를 만들어주겠습니다. 저는 앞에 게시물에서 퍼미션 권한을 미리 다 설정을 했기 때문에 MissingPermission 으로 진행하였습니다.

MapView.CurrentLocationTrackingMode 에는

TrackingModeOnWithoutHeading ,

TrackingModeOnWithoutHeadingWithoutMapMoving,

TrackingModeOff

등등 다양한 옵션이 있으니 용도에 맞게 사용하세요~

 

   
   startTracking

}

// 현재 사용자 위치추적
@SuppressLint("MissingPermission")
private fun startTracking() {
   binding.mapView.currentLocationTrackingMode = 
    MapView.CurrentLocationTrackingMode.TrackingModeOnWithoutHeading  //이 부분

    val lm: LocationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager
    val userNowLocation: Location? = lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER)
    //위도 , 경도
    val uLatitude = userNowLocation?.latitude
    val uLongitude = userNowLocation?.longitude
    val uNowPosition = MapPoint.mapPointWithGeoCoord(uLatitude!!, uLongitude!!)

    // 현 위치에 마커 찍기 
    val marker = MapPOIItem()
    marker.itemName = "현 위치"
    marker.mapPoint =uNowPosition 
    marker.markerType = MapPOIItem.MarkerType.BluePin
    marker.selectedMarkerType = MapPOIItem.MarkerType.RedPin
    binding.mapView.addPOIItem(marker)
}



// 위치추적 중지
private fun stopTracking() {
    binding.mapView.currentLocationTrackingMode = MapView.CurrentLocationTrackingMode.TrackingModeOff
}

override fun onDestroy() {
    super.onDestroy()
    stopTracking()
}

마커 같은 경우에는 내 위치가 아니더라도 , 위도, 경도를 입력하여 좌표를 구할 수 있으면 객체를 만들어서

어디든지 좌표를 찍을 수 있습니다!

 

 

이 외에

현재위치가 아니라 특정 위치를 지정해 시작을 하고 싶다면 TrackingModeOff 로 설정하시고 원하는 좌표를 구한 후

binding.mapView.setMapCenterPoint(MapPoint.mapPointWithGeoCoord(37.53737528, 127.00557633), true)

다른 여러가지 기능들이 가이드에 많이 나와 있으니 참조하세요!

https://apis.map.kakao.com/android/guide/#mapview