본문 바로가기

안드로이드/코틀린(Kotlin)

[Android : Kotlin] 네이버 지도 SDK를 사용해서 네이버 맵을 구현해보자

300x250

안드로이드 코틀린으로 네이버 지도 SDK를 사용해서 네이버 지도를 구현해보자.

1. 먼저, ☞ 네이버 클라우드 플랫폼에 가입해서 어플리케이션 등록을 한다.

 

 

2. 의존성 추가

루트 프로젝트의 build.gradle에 에 저장소 설정을 추가한다.

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://navercorp.bintray.com/maps' // naver map
        }
        
    }
}

그리고 앱 모듈의 build.gradle에 네이버 지도 SDK에 대한 의존성을 선언한다.

implementation 'com.naver.maps:map-sdk:3.5.0' // naver map

 

3. 클라이언트 ID 지정

발급받은 클라이언트 ID를 SDK에 지정하면 지도 API를 사용할 수 있다.

클라이언트 ID는 두 가지 방식으로 지정할 수 있고 둘 중 편한것으로 하면 된다.

 

1. AndroidManifest.xml에 지정

AndroidManifest.xml의 <application> 아래에 <meta-data>를 추가하고 아래와 같이 입력한다. value에는 자신이 등록한 Application의 Client ID를 입력한다.

<application>
        <meta-data
                android:name="com.naver.maps.map.CLIENT_ID"
                android:value="Your Client ID" />
</application>

2. API를 호출해 지정

AndroidManifest.xml을 수정하지 않고 API를 호출해 클라이언트 ID를 지정할 수도 있다.

Activity의 onCreate()내에서 NaverMapSdk클래스의 getInstance()를 호출 후 NaverMapSdk.NaverCloudPlatformClient()를 전달한다.

NaverMapSdk.getInstance(this).client = NaverMapSdk.NaverCloudPlatformClient("Your Client ID")

 

4. 지도 표시

지도 화면은 프래그먼트 및 뷰로 제공되지만 이 중 권장되는 방법은 MapFragment를 사용하는 것이다.

아래의 예제는 MapFragment를 사용하였고 <com.naver.maps.map.MapView>로도 네이버 지도를 화면에 표시할 수 있다.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

	<!--naver map-->
    <fragment
            android:id="@+id/main_mapView"
            android:layout_width="0dp"
              android:layout_height="0dp"
              android:name="com.naver.maps.map.MapFragment"
              app:layout_constraintTop_toBottomOf="@id/main_toolbar"
              app:layout_constraintLeft_toLeftOf="parent"
              app:layout_constraintRight_toRightOf="parent"
              app:layout_constraintBottom_toBottomOf="parent"/>
              
</androidx.constraintlayout.widget.ConstraintLayout>

mainActivity.xml

 

 

네이버 지도가 표시된 화면

 

 

 


Reference

☞ Naver Map Docs

320x100