
https://navermaps.github.io/android-map-sdk/guide-ko/0.html
소개 · 네이버 지도 안드로이드 SDK
No results matching ""
navermaps.github.io
이 글은 네이버에서 제공하는 안드로이드 SDK를 참고하여 작성하였습니다.
네이버 지도 SDK는 안드로이드 OS 버전 4.0.3(API 레벨 15) 이상에서 사용할 수 있습니다.
SDK 사용을 위한 앱 등록 및 클라이언트 ID 발급
NAVER CLOUD PLATFORM
cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification
www.ncloud.com
첫 서비스 등록 시 결제수단을 연결 해야합니다
의존성 추가
allprojects {
repositories {
google()
mavenCentral()
maven("https://naver.jfrog.io/artifactory/maven/")
}
}
dependencies {
// 네이버 지도 SDK
implementation("com.naver.maps:map-sdk:3.16.0")
}
Manifest meta data 추가
<manifest>
<application>
<meta-data
android:name="com.naver.maps.map.CLIENT_ID"
android:value="YOUR_CLIENT_ID_HERE" />
</application>
</manifest>
Fragment, .xml 수정하기
수정 전 설명
xml에선 네이버에서 제공하는 MapFragment와 MapView로 나뉘며
MapFragmnet는 Activity MapView는 Fragment로 구현합니다.
네이버에서 가장 권장하는 MapFragement의 장점은 라이프 사이클에 메소드 호출 생략이며
만약 MapView를 사용시 메소드를 호출하지 않으면 지도가 동작하지 않습니다.
저는 Fragment로 구현 했기 때문에 MapView로 지정하겠습니다.
.xml 코드
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.naver.maps.map.MapView
xmlns:app="http://schemas.android.com/tools"
android:id="@+id/map_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:ignore="NamespaceTypo"/>
</androidx.constraintlayout.widget.ConstraintLayout>
.kt 코드
onCreateView(), onViewCreated()
onStart(), onResume(), onPause() 등 필수 메소드를 추가
class NearLocation : Fragment(), OnMapReadyCallback {
//mapView를 받아오기 위해 변수 설정
private lateinit var mapView: MapView
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_near_location, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mapView = view.findViewById(R.id.map_view)
mapView.onCreate(savedInstanceState)
//getMapAsync 메서드를 호출하여 프래그먼트에서 콜백을 설정
//getMapAsync() ↔ onMapReady
mapView.getMapAsync(this)
}
//뷰 시작시 위치 이동
override fun onMapReady(naverMap: NaverMap) {
//초기 위치 설정, 위도 경도
val cameraUpdate = CameraUpdate.scrollTo(LatLng(37.562238,127.065175))
naverMap.moveCamera(cameraUpdate)
}
//이 아래부턴 생명주기입니다. MapView 사용시 필수
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.onDestroyView()
mapView.onDestroy()
}
override fun onLowMemory() {
super.onLowMemory()
mapView.onLowMemory()
}
}
MapView가 프래그먼트에 포함될 경우 프래그먼트의 onCreateView() 또는 onViewCreated()에서 onCreate()를, onDestroyView()에서 onDestroy()를 호출해야 합니다.
결과 화면
다음 글은 네이버 지도 SDK를 통해 현재 위치를 띄우는 기능을 구현하겠습니다.
https://just-coding-record.tistory.com/29
[Android/Kotlin] 실시간 위치 구현하기 with Naver map SDK
https://just-coding-record.tistory.com/28 [Android/Kotlin] Naver map SDK 이용한 지도 구현하기 https://navermaps.github.io/android-map-sdk/guide-ko/0.html 소개 · 네이버 지도 안드로이드 SDK No resul..
just-coding-record.tistory.com
'Android-Kotlin📱' 카테고리의 다른 글
[Android/Kotlin] Naver Geocoding 주소로 위도 경도 추출 코틀린 json 데이터 파싱 (0) | 2022.05.24 |
---|---|
[Android/Kotlin] 실시간 위치 구현하기 with Naver map SDK (0) | 2022.05.23 |
[Android/Kotlin] 로그인 시 두 액티비티 구별 Firebase Realtime Database (0) | 2022.05.22 |
Kotlin Fragment ViewBinding (0) | 2022.05.21 |
토이프로젝트 꽃밭 - 1일차 (0) | 2022.05.21 |