모바일 앱(안드로이드)
Jetpack Compose에서 Kakao Map API를 사용하여 지도 구현하기
Billcorea
2024. 11. 4. 15:53
반응형
Jetpack Compose에서 Kakao Map API를 사용하여 지도 구현하기
안녕하세요! 오늘은 Jetpack Compose를 사용하여 Kakao Map API를 활용해 지도를 구현하는 방법에 대해 알아보겠습니다. 이 튜토리얼을 통해 기본적인 설정부터 지도의 중심을 변경하는 방법까지 단계별로 설명드리겠습니다.
1. 프로젝트 설정
Gradle 설정
먼저 build.gradle 파일에 필요한 의존성을 추가합니다:
gradle
dependencies {
implementation 'androidx.core:core-ktx:1.6.0'
implementation 'androidx.compose.ui:ui:1.0.5'
implementation 'androidx.compose.material:material:1.0.5'
implementation 'androidx.compose.ui:ui-tooling-preview:1.0.5'
implementation 'androidx.activity:activity-compose:1.3.1'
// Kakao Map SDK
implementation 'com.kakao.maps.open:android:2.12.8'
}
프로젝트 레벨 settings.gradle
프로젝트 루트 디렉토리의 settings.gradle 파일에 Kakao SDK 리포지토리를 추가합니다:
groovy
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven {
url = uri("https://devrepo.kakao.com/nexus/repository/kakaomap-releases/")
}
}
}
rootProject.name = "YourProjectName"
include ':app'
AndroidManifest.xml 설정
위치 권한을 요청하기 위해 AndroidManifest.xml 파일에 다음 권한을 추가합니다:
xml
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
2. 지도 구현
MainActivity 설정
Compose를 사용하여 Kakao Map을 표시하는 MainActivity를 설정합니다:
kotlin
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalContext
import net.daum.mf.map.api.MapView
import net.daum.mf.map.api.MapPoint
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
KakaoMapExample()
}
}
@Composable
fun KakaoMapExample() {
val context = LocalContext.current
val mapView = remember {
MapView(context).also { mapView ->
mapView.setMapCenterPoint(MapPoint.mapPointWithGeoCoord(37.5665, 126.9780), true)
}
}
}
}
지도의 중심 변경
KakaoMapReadyCallback의 onMapReady 콜백 안에서 지도의 중심을 설정할 수 있습니다:
kotlin
import net.daum.mf.map.api.CameraUpdateFactory
import net.daum.mf.map.api.KakaoMap
val mapView = remember {
MapView(context).also { mapView ->
mapView.start(
object : MapLifeCycleCallback() {
override fun onMapDestroy() = Unit
override fun onMapError(e: Exception?) = Unit
override fun onMapResumed() = Unit
},
object : KakaoMapReadyCallback() {
override fun onMapReady(map: KakaoMap) {
val centerLatLng = MapPoint.mapPointWithGeoCoord(37.5665, 126.9780) // 예: 서울 시청 좌표
val cameraUpdate = CameraUpdateFactory.newMapPoint(centerLatLng)
map.moveCamera(cameraUpdate)
}
}
)
}
}
결론
이 튜토리얼을 통해 Jetpack Compose 프로젝트에서 Kakao Map API를 사용하여 지도를 표시하고 지도의 중심을 설정하는 방법을 배웠습니다. 이 과정을 따라 하면 여러분도 쉽게 Kakao Map을 앱에 통합할 수 있을 것입니다.
질문이 있으시면 언제든지 댓글로 남겨주세요!
아직 정리가 되지 않은 부분이 있으니 참고만 하세요. 정리가 되면 업데이트 해 보겠습니다.
반응형