1. 세팅하기
gradle 파일에 네이버 지도 SDK 저장소 설정을 추가해준다. 나는 안드로이드 스튜디오 Arctic Fox 버전을 쓰고 있기 때문에 setting.gradle 파일에 해당 설정을 해주었다.
allprojects {
repositories {
google()
jcenter()
maven {
url 'https://naver.jfrog.io/artifactory/maven/'
}
}
}
네이버 지도 SDK에 대한 의존성도 추가해준다. (build.gradle/app)
dependencies {
// 네이버 지도 SDK
implementation 'com.naver.maps:map-sdk:3.14.0'
}
네이버 클라우드 플랫폼에서 애플리케이션을 새로 생성하면 클라이언트 ID를 발급받게 되는데, 이 ID를 Manifast 파일에 지정해 준다.
클라이언트 ID는 콘솔 > AI/NAVER API > Application > 인증정보 에서 확인할 수 있다.
<manifest>
<application>
<meta-data
android:name="com.naver.maps.map.CLIENT_ID"
android:value="${Client ID}" />
</application>
</manifest>
이 클라이언트 인증정보를 설정해 주지 않으면 네이버 지도가 화면에 뜨지 않는다.
1. 지도 표시하기
xml 파일에 직접 MapView를 넣어주었다. fragment 방식을 사용해 지도를 표시할 수도 있다.
<com.naver.maps.map.MapView
android:id="@+id/map_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
이 과정까지 완료한 후 애뮬레이터를 실행해 보면 네이버 지도가 잘 뜨는 것을 볼 수 있다.
추가로 액티비티 라이프 사이클에 맞추어 생명주기 함수들을 그때 그때 호출해 주는 코드를 작성해야 한다. 지도를 사용할 때 액티비티에 MapView를 사용했으므로 이 과정을 거치지 않으면 지도가 제대로 작동하지 않을 수 있다. 프래그먼트에서 MapView를 사용했다면 마찬가지로 프래그먼트의 생명주기에 맞춰준다.
class MainActivity : AppCompatActivity() {
private lateinit var mapView: MapView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
mapView = findViewById(R.id.map_view)
mapView.onCreate(savedInstanceState)
}
override fun onStart() {
super.onStart()
mapView.onStart()
}
override fun onResume() {
super.onResume()
mapView.onResume()
}
override fun onPause() {
super.onPause()
mapView.onPause()
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
mapView.onSaveInstanceState(outState)
}
override fun onStop() {
super.onStop()
mapView.onStop()
}
override fun onDestroyView() {
super.onDestroy()
mapView.onDestroy()
}
override fun onLowMemory() {
super.onLowMemory()
mapView.onLowMemory()
}
}
'Android' 카테고리의 다른 글
[Android] 포그라운드 서비스 사용 (Foreground Service) (1) | 2024.09.24 |
---|---|
[Android] Branch.io SDK 연동 / 딥링크 사용법 / 커스텀 이벤트 트래킹하기 (0) | 2024.01.16 |
[Android] Widget 에서 ListView 사용하여 데이터 노출하기 (2) | 2023.10.12 |
[Android] 딥링크 / URI Scheme 방식 사용하기 (0) | 2023.04.04 |