본문 바로가기
안드로이드

네이버 클라우드 플랫폼 사용 후기 (지도 Map API)

by 디지털노마더 2020. 6. 17.

최근 개인 프로젝트를 진행하면서 공공데이터를 활용하여 좌표값이 해당되는 위치를 표현해주는 기능이 필요했었다.

지도 Map API를 제공해주는 회사는 대표적으로 구글맵, 네이버, 카카오(다음)가 있다.

 

그중에서 네이버 API를 활용하여 모바일에서 지도 화면을 표현하고자 한다.

 

기존에는 아래 그림처럼 Map API V3 버전으로 서비스되고 있었다.

현재는 서비스 이용 불가능 (네이버 클라우드 플랫폼 이용 권장)

 

하지만, 2020년도부터 네이버클라우드 플랫폼 서비스로 관련 API를 모두 통합하는 형태로 사이트가 개편되었다.

 

우선 최초 이용자들은 회원가입부터 진행한 이후에 API 신청 및 서비스 이용이 가능하다. 

회원가입 이후에는 "결제수단" 등록 안내 팝업창이 공격적으로 발생한다.

 

이는 정상적인 API를 이용하기 위한 필수 절차이니 사용하는 신용카드를 결제수단으로 등록하여 "결제수단" 절차를 완성 지으면 간편하다.

 

 

자, 이제 결제수단 등록까지 마쳤다면 API 신청을 정상적으로 수행할 수 있다.

전체 서비스목록을 확인해보면 얼마나 다양한 API를 네이버에서 제공하는지를 확인할 수 있다.

 

많은 API 중에 "Maps"라는 키워드로 검색하면 하단에 Application Service에 포함된 지도 API를 확인할 수 있다.

 

 

상세 페이지로 이동하면 [이용 신청하기] 버튼이 보인다.

 

 

클릭하면 클라우드 콘솔 페이지(API 관리자페이지)가 띄워진다.

좌측 하단의 "Application" 메뉴를 클릭하여 사용할 신규 애플리케이션을 등록해야 한다.

 

내가 활용할 API의 신규 프로젝트를 생성하는 개념으로 보아도 무방하다.

 

 

필요한 약관에 대한 동의를 거친 후에, 이용할 서비스 API에 체크하여 신청한다.

 

필자의 경우에는 안드로이드 앱에서 Map기능을 사용하기 위해서 Mobile Dynamic Map를 신청했다.

사용자마다 필요로 하는 API를 선택하여 신청하면 된다.

 

신청을 완료한 이후에는, 사용하고자 하는 앱의 패키지명을 입력하는 란이 보인다.

 

이는, Naver Map API를 사용할 수 있는 앱을 제한하고 이를 검증하기 위해 필요한 정보이다.

 

자, 패키지명까지 입력했다면 관리자 페이지에서 정상적으로 등록된 애플리케이션 목록을 볼 수 있다.

 

 

이제는 안드로이드 프로젝트에서 Naver Map API를 사용하기 위한 설정 단계가 필요하다.

 

1. Root build.gradle 파일을 열어서, maven 란에 아래의 도메인을 입력해준다.

allprojects {
   repositories {  
   google()
   jcenter()

  // 네이버 지도 저장소
  maven {
    url 'https://navercorp.bintray.com/maps'
  }

  }
}

 

2. 의존성을 위해 app Module의 build.gradle에 추가.

dependencies {
  // 네이버 지도 SDK
  implementation 'com.naver.maps:map-sdk:3.8.0'
}

 

3. AndroidManifest.xml에 지정

  name으로 com.naver.maps.map.CLIENT_ID를, value로 발급받은 클라이언트 ID를 지정

<manifest>
   <application>
    <meta-data android:name="com.naver.maps.map.CLIENT_ID" android:value="YOUR_CLIENT_ID_HERE" />       </application>
</manifest>

 

4. 지도 표시

<fragment
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:id="@+id/map"
  android:name="com.naver.maps.map.MapFragment" />

 

보다 자세한 사항은 설명서(링크) 페이지를 참조하시기 바랍니다.

 

댓글