본문 바로가기

Interesting IT

Android Studio 네이버 지도 API 사용하기

네이버 Map API를 사용하여 Android Studio에 지도를 삽입해보자.

 

 

1. Naver Map API Key

 

https://console.ncloud.com/dashboard

 

먼저 위 사이트로 들어가서 로그인을 한 뒤 결제정보를 작성한다.

결제정보를 작성해도 요금이 부과되지 않는 api를 사용하면 결제가 되지 않는다.

 

 

Naver Cloud Platform dashboard

 

입력을 완료하고 나면 위와 같은 화면이 나오는데 Products & Services 메뉴를 클릭한다.

 

 

Products & Services

 

 

AI-NAVER API 클릭한 뒤 Application 등록 버튼을 누른다.

 

 

 

Application 등록
Application 등록

 

 

Application 이름을 작성하고 Android Studio에서 Map API를 사용할 것이기 때문에

Mobile Dynamic Map을 체크한 뒤 서비스 환경을 등록한다.

 

Android studio의 package 명을 Android 앱 패키지 이름에 작성한 뒤

추가 버튼을 누르지 않으면 등록이 되지 않기 때문에 꼭!! 추가 버튼을 누른다.

 

아래 화면과 같이 Application이 등록된다.

 

 

 

Application
인증 정보

인증 정보를 눌러서 Client ID를 복사해둔다.

 

 

 

 

 

 

2. Android Studio

 

네이버 가이드를 참고하였다.

https://docs.ncloud.com/ko/naveropenapi_v3/maps/android-sdk/v3/start.html

 

설명서

시작하기 네이버 지도 SDK를 사용하기 위해서는 네이버 클라우드 플랫폼에서 클라이언트 ID를 발급받고, 발급받은 ID를 SDK에 지정해야 합니다. 클라이언트 ID 발급 네이버 지도 모바일 SDK API를 사�

docs.ncloud.com

 

프로젝트 수준의 build.gradle에 들어가서 allproject -> repositories 안에 아래와 같이 작성한 뒤 동기화를 진행한다.

 

 maven { url 'https://navercorp.bintray.com/maps' }

 

프로젝트 build.gradle

 

 

 

앱 수준의 build.gradle에 들어간 뒤 dependencies 안에 아래 코드를 추가한 뒤 동기화를 진행한다.

 

implementation 'com.naver.maps:map-sdk:3.9.0'

 

 

 

 

그 다음 androidmanifest.xml에 코드를 추가하는데 application 태그 안에 아래와 같이 <meta-data> 태그를 삽입한다.

 

                                          <application>       

                                                  <meta-data           

                                                          android:name="com.naver.maps.map.CLIENT_ID"           

                                                          android:value="YOUR_CLIENT_ID_HERE" />   

                                         </application>

 

value 값 안에는 인증 정보에서 복사해두었던 Client ID를 작성한다.

 

 

 

 

Map을 삽입할 레이아웃에 MapView를 삽입한다.


<com.naver.maps.map.MapView
   
android:id="@+id/map_view"
   
android:layout_width="match_parent"
   
android:layout_height="match_parent"
   
app:layout_constraintBottom_toBottomOf="parent"
   
app:layout_constraintEnd_toEndOf="parent"
   
app:layout_constraintStart_toStartOf="parent"
   
app:layout_constraintTop_toTopOf="parent">
</com.naver.maps.map.MapView>

 

 

 

 

레이아웃에 해당하는 java 파일로 이동하여 코드를 추가로 작성한다.

 

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {
   
private MapView mapView;

   
@Override
   
protected void onCreate(@Nullable Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
       
setContentView(R.layout.activity_main);

       
mapView = findViewById(R.id.map_view);
       
mapView.onCreate(savedInstanceState);

       
naverMapBasicSettings
();
    }

   
public void naverMapBasicSettings() {
       
mapView.getMapAsync(this
);
    }

   
@Override
   
public void onMapReady(@NonNull final NaverMap naverMap) {

 

        // 현재 위치 버튼 안보이게 설정
       
UiSettings uiSettings = naverMap.getUiSettings();

        uiSettings.setLocationButtonEnabled(false);

 

        // 지도 유형 위성사진으로 설정
       
naverMap.setMapType(NaverMap.MapType.Satellite);

    }
}

 

 

지도 유형 변경은 위의 지도 유형 설정 코드 중에서 밑줄 친 부분에 작성해 변경할 수 있다.

 - Basic : 일반지도 - 하천, 녹지, 도로, 심벌 등 다양한 정보 노출

 - Navi : 차량용 내비게이션에 특화된 지도

 - Satellite : 위성지도 - 심벌, 도로 등 위성 사진을 제외한 요소 노출되지 않음

 - Hybrid : 위성 사진과 도로, 심벌을 함께 노출

 - Terrain : 지형도 - 산악 지형을 실제 지형과 유사하게 입체적으로 표현

 - None : 지도를 나타내지 앟음. 단, 오버레이는 나타냄

 

 

자세한 옵션은 아래 주소를 참고하면 된다.

navermaps.github.io/android-map-sdk/guide-ko/2-3.html

 

지도 옵션 · 네이버 지도 안드로이드 SDK

No results matching ""

navermaps.github.io

 

이렇게 작성하면 지도가 출력된다.

 

지도 출력 화면