[FAQ] 지도/로컬 API 문의 전 꼭 읽어 주세요.
https://devtalk.kakao.com/t/faq-api/125610
일단 시키는대로 전부 설치하고
지도화면을 띄우는거까지 성공했습니다.
그후에 몇가지 문제가 생겼습니다.
일단 MapView.OpenAPIKeyAuthenticationResultListener, MapView.MapViewEventListener, MapView.CurrentLocationEventListener, MapView.POIItemEventListener
여기 언급됩 인터페이스들을 전부 상속받았는데요. 대충 콜백함수명을보니 사용용도를 알거같아서
몇가지 로그를 찍는부분을 만들어서 실행을 해봤는데요. 제 예상으로는 지도상에서 터치한번,더블터치,길게 누르고있을때,줌을 했을때 로그가 나와야될거라고 예상했는데 전혀 안나오더라구요…
그래서 문서를 좀 살펴보다가
mapView.setMapViewEventListener(this) 이부분을 넣으라고 되어있길래
넣고 지도뷰로 넘어갈려고하면 튕겨버리더라구요…
그래서 얼마전에 카카오맵의 라이브러리가 최신화되어있길래 6.28일 버전을 다시 설치했고
최신화할수있는것들은 전부 다했습니다. 그래도 여전히 같은 현상이 발생하더라구요…
아래는 코틀린으로 작성된 지도 전문입니다. 혹시 잘못된 부분이 있을까요?
import android.os.Bundle
import android.util.Log
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import net.daum.mf.map.api.MapPOIItem
import net.daum.mf.map.api.MapPoint
import net.daum.mf.map.api.MapView
class MapActivity : AppCompatActivity() , MapView.OpenAPIKeyAuthenticationResultListener, MapView.MapViewEventListener, MapView.CurrentLocationEventListener, MapView.POIItemEventListener {
private lateinit var binding: ActivityMapBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMapBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
val mapView = MapView(this)
val mapViewContainer = binding.mapview as ViewGroup
mapViewContainer.addView(mapView)
mapView.setMapViewEventListener(this) // 이부분만 넣으면 앱이 꺼져버립니다.
}
override fun onPOIItemSelected(p0: MapView?, p1: MapPOIItem?) {
TODO("Not yet implemented")
}
override fun onCalloutBalloonOfPOIItemTouched(p0: MapView?, p1: MapPOIItem?) {
TODO("Not yet implemented")
}
override fun onCalloutBalloonOfPOIItemTouched(
p0: MapView?,
p1: MapPOIItem?,
p2: MapPOIItem.CalloutBalloonButtonType?
) {
TODO("Not yet implemented")
}
override fun onDraggablePOIItemMoved(p0: MapView?, p1: MapPOIItem?, p2: MapPoint?) {
TODO("Not yet implemented")
}
override fun onMapViewInitialized(p0: MapView?) {
TODO("Not yet implemented")
}
override fun onMapViewCenterPointMoved(p0: MapView?, p1: MapPoint?) {
TODO("Not yet implemented")
}
override fun onMapViewZoomLevelChanged(p0: MapView?, p1: Int) {
Log.d("ZoomLog","zoom")
}
override fun onMapViewSingleTapped(p0: MapView?, p1: MapPoint?) {
Log.d("TapLog","one")
}
override fun onMapViewDoubleTapped(p0: MapView?, p1: MapPoint?) {
Log.d("TapLog","double")
}
override fun onMapViewLongPressed(p0: MapView?, p1: MapPoint?) {
Log.d("PressedLog","long")
}
override fun onMapViewDragStarted(p0: MapView?, p1: MapPoint?) {
TODO("Not yet implemented")
}
override fun onMapViewDragEnded(p0: MapView?, p1: MapPoint?) {
TODO("Not yet implemented")
}
override fun onMapViewMoveFinished(p0: MapView?, p1: MapPoint?) {
TODO("Not yet implemented")
}
override fun onDaumMapOpenAPIKeyAuthenticationResult(p0: MapView?, p1: Int, p2: String?) {
TODO("Not yet implemented")
}
override fun onCurrentLocationUpdate(p0: MapView?, p1: MapPoint?, p2: Float) {
TODO("Not yet implemented")
}
override fun onCurrentLocationDeviceHeadingUpdate(p0: MapView?, p1: Float) {
TODO("Not yet implemented")
}
override fun onCurrentLocationUpdateFailed(p0: MapView?) {
TODO("Not yet implemented")
}
override fun onCurrentLocationUpdateCancelled(p0: MapView?) {
TODO("Not yet implemented")
}
}