카카오내비 SDK와 관련된 질문과 답변을 올리는 카테고리입니다.
카카오내비 길찾기 SDK로 내비를 개발할려고 하는데 몇가지 문의 사항이 있습니다.
- 카카오내비 길찾기 SDK를 사용할때 아래 두가지 중 어떤것을 사용해야 하나요
또한 둘의 차이점이 뭔지에 대해 알고 싶습니다(사용가능한 api가 따로 있는지 등…)
implementation(“com.kakaomobility.knsdk:knsdk_ui:1.9.4”)
implementation(“com.kakaomobility.knsdk:knsdk:1.9.4”)
- 카카오내비 길찾기 SDK with UI의 작정된 코드로 내비를 띄웠는데
이 경우 KNNaviView를 이용해 기존 적인 UI 및 안내 구성되 되어 표출되는데
KNNaviView를 사용하지 않고 KNMapView 등을 이용하여 내비기능 구현이 가능한지 알고 싶습니다.
가능하다면 주행화면(activity_navi.xml)의 com.kakaomobility.knsdk.ui.view.KNNaviView 대신
뭘 사용해야 하는지 알고 싶습니다.
안녕하세요, 카카오모빌리티 기술 제휴 담당자입니다.
-
두 가지 모두 사용 가능합니다. 차이점은 기본 UI를 제공하느냐 제공하지 않느냐의 차이입니다.
-
KNSDK_UI에서 제공하는 뷰를 사용하지 않고, KNMapView만으로도 내비게이션 기능 구현이 가능합니다.
KNSDK_UI가 아닌 KNSDK만 사용해서도 구현할 수 있으며,
XML 사용 시, <com.kakaomobility.knsdk.map.knmapview.KNMapView>를 이용하실 수 있습니다.
맵 뷰를 사용할 때는 KNSDK.bindingMapView()를 통해 초기화(필수) 한 후에 사용하시면 됩니다.
감사합니다.
KNSDK.bindingMapView(
knMapView as KNMapView,
KNMapTheme.driveDay() // 주간 드라이브 테마
) { error →
completion?.invoke(error)
if (error != null) {
showToast(“맵 초기화 실패: [${error.code}] ${error.msg}”)
}
}
위와 같이 맵을 초기화 해서 띄워서 확인 했을 때 파란 바탕만 표시되고 맵이 표시 되지 않습니다.
혹시 초기화시 추가적으로 꼭 셋팅해야하는 것이 있는지요? 가령 표출해야 할 좌표(현위치 좌표) 등이 있는지 확인 가능할까요?
KNSDK 사용 시 initializeWithApp 키를 통해 인증이 정상적으로 되었는지 확인하고,
인증 완료 후에 맵뷰를 표시할 수 있는지 확인해 주시기 바랍니다.
맵 바인딩이 오류 없이 정상적으로 완료된 후의 작업은 아래 샘플 코드를 참고해 주시기 바랍니다.
KNSDK.bindingMapView(knMapView as KNMapView, KNMapTheme.driveDay()) { error →
if (error != null) {
showToast("맵 초기화 실패: [${error.code}] ${error.msg}")
} else {
// 완료된 이후,
mapView.setZOderMediaOverlay(true)
mapView.useTiltGesture = true
mapView.useZoomGesture = true
mapView.useBearingGesture = true
mapView.usePanningGesture = true
// 위치 이동
val cameraUpdate = KNMapCameraUpdate().apply {
bearingTo(0f)
tiltTo(0f)
zoomTo(1f)
targetTo(DoublePoint(표시할 위치 katech 좌표))
}
mapView.moveCamera(cameraUpdate, true)
}
}
감사합니다.