[Kotlin] 네이버 지도 API 사용해보기

Boknami·2023년 7월 26일
0

코틀린

목록 보기
5/19

⚙ Setting

  1. https://www.ncloud.com/?language=ko-KR 가입

  2. 결제수단 등록(따로 결제는 없지만 등록을 해야지만 지도 사용 가능!)

  3. 콘솔 버튼 클릭

  4. Services - AI NAVER MAP

  5. NaverMap 체크 후 패키지명 입력하기


안드로이드 스튜디오로 넘어와서!

  1. settings.gradle에 maven url 추가

  2. 앱 수준의 bulid.gradle파일에 dependencies 추가

  3. manifest.xml에 생성해둔 네이버 클라이언트ID 등록


XML
9. MapView

<com.naver.maps.map.MapView
        android:id="@+id/map_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

📙 사용해보기

처음 화면

🌍 경도,위도 확인하기

경도 위도를 가지고 오는 과정에서 오류를 겪었다..
java.lang.IncompatibleClassChangeError: Found interface com.google.android.gms.location.FusedLocationProviderClient, but class was expected (declaration of 'com.google.android.gms.location.FusedLocationProviderClient' appears in /data/app/~~gD7DzUCXFVMFTi3vOtYFww==/com.beacon-wUQuPh4JJemPHwbLDuTj-g==/base.apk)

FusedLocationProviderClient를 찾긴했는데 클래스 형태라 뭔가 잘 안 맞는 것 같았다. 따로 검색을 해보니 아직 이러한 오류를 겪은 사람들이 별로 없어서 일단은 버전에서 무언가 착오가 있을까봐 GMS의 버전을 다운그레이드 하니 정상적으로 작동했다!

AVD에서 현재 위치 버튼을 눌러 토스트 메시지로 띄운 경도와 위도를 검색하니 실제로 구글맵에서 정확한 위치가 일치하는 장소가 나온다!

아래는 코드인데 일단은 onMapReady에 위도와 경도에 대한 측정 내용을 띄웠는데 좀 더 다듬어봐야할 것 같다.


override fun onMapReady(naverMap: NaverMap) {
        Log.d(TAG, "MainActivity - onMapReady")
        this.naverMap = naverMap
        naverMap.locationSource = locationSource
        naverMap.uiSettings.isLocationButtonEnabled = true

		// 위치 변경이 인식되는 경우
        naverMap.addOnLocationChangeListener { location ->
            Toast.makeText(this, "${location.latitude}, ${location.longitude}",
                Toast.LENGTH_SHORT).show()

            Log.d(TAG, "${location.latitude}, ${location.longitude}")
        }
    }

0개의 댓글