네이버 Map API를 사용하여 Android Studio에 지도를 삽입해보자.
1. Naver Map API Key
https://console.ncloud.com/dashboard
먼저 위 사이트로 들어가서 로그인을 한 뒤 결제정보를 작성한다.
결제정보를 작성해도 요금이 부과되지 않는 api를 사용하면 결제가 되지 않는다.
입력을 완료하고 나면 위와 같은 화면이 나오는데 Products & Services 메뉴를 클릭한다.
AI-NAVER API 클릭한 뒤 Application 등록 버튼을 누른다.
Application 이름을 작성하고 Android Studio에서 Map API를 사용할 것이기 때문에
Mobile Dynamic Map을 체크한 뒤 서비스 환경을 등록한다.
Android studio의 package 명을 Android 앱 패키지 이름에 작성한 뒤
추가 버튼을 누르지 않으면 등록이 되지 않기 때문에 꼭!! 추가 버튼을 누른다.
아래 화면과 같이 Application이 등록된다.
인증 정보를 눌러서 Client ID를 복사해둔다.
2. Android Studio
네이버 가이드를 참고하였다.
https://docs.ncloud.com/ko/naveropenapi_v3/maps/android-sdk/v3/start.html
프로젝트 수준의 build.gradle에 들어가서 allproject -> repositories 안에 아래와 같이 작성한 뒤 동기화를 진행한다.
maven { url 'https://navercorp.bintray.com/maps' }
앱 수준의 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
이렇게 작성하면 지도가 출력된다.
'Interesting IT' 카테고리의 다른 글
Android Studio 구글 지도 API 사용하기 (0) | 2020.08.26 |
---|---|
애드몹(Admob) 이용하여 Android Studio 전면 광고 삽입 (0) | 2020.08.19 |
애드몹(Admob) 이용하여 Android studio 배너 광고 삽입 (1) | 2020.08.05 |
안드로이드 스튜디오 데이터바인딩 (0) | 2020.07.29 |
공공 데이터 포털 api 사용 가이드 (0) | 2020.07.24 |