경험의 기록

구글의 맵 API를 사용하면

앱에서 지도를 활용할 수 있다.

 

2021.06.25 - [안드로이드/기본] - [Kotlin] 안드로이드 권한 (Permission) 체크하기 - 위치정보 사용하기

 

[Kotlin] 안드로이드 권한 (Permission) 체크하기 - 위치정보 사용하기

안드로이드에서는 특정 동작을 위하여 권한이 필요하다. 마시멜로 버전 이전에는 앱 설치시 모든 권한이 요청되었지만 이후 버전에서는 권한이 크게 일반 권한과 위험 권한으로 나뉘었다. 일반

hanyeop.tistory.com

최우선 적으로, 위치 권한부터 추가해야한다.


사용해보기

API 발급받기

https://cloud.google.com/maps-platform/

 

Geolocation API  |  Google Maps Platform  |  Google Cloud

Google Maps Platform을 선택하면 정확한 실시간 데이터 및 동적 이미지로 몰입형 위치정보 활용 환경을 만들고 더 나은 비즈니스 의사결정을 내릴 수 있습니다.

cloud.google.com

사이트로 들어가서 시작하기를 클릭하여

 

프로젝트를 생성해준다.

 

생성이 완료되면 Maps SDK for Android를 클릭하여 맵 API로 들어가서

 

좌측에서 사용자인증정보를 들어간다.

 

API키를 발급받을 수 있다.

API키는 노출되면 안되므로 별도로 저장하고,

제한사항에 SHA-1 키를 등록하여준다.

2021.01.22 - [안드로이드/파이어베이스] - [Android] 안드로이드 스튜디오 앱 apk 추출 후 파이어베이스 구글 로그인이 되지 않는 현상

 

[Android] 안드로이드 스튜디오 앱 apk 추출 후 파이어베이스 구글 로그인이 되지 않는 현상

안드로이드 스튜디오에서 apk를 추출하기위해 release 빌드를 하게되면 파이어베이스 기능이 작동하지 않는 현상이 발생한다. SHA-1 지문이 두가지 형태기 때문인데 debug용과 release 용이 따로 존재

hanyeop.tistory.com

SHA키를 아는 방법은 여기서 확인할 수 있다.

 

 

 

종속성 추가

// Google Maps
    implementation 'com.google.android.gms:play-services-maps:17.0.1'
    implementation 'com.google.android.gms:play-services-location:18.0.0'

구글 맵을 추가해주고

 

매니패스트

<meta-data android:name="com.google.android.geo.API_KEY"
            android:value="@string/maps_api_key"/>

        <meta-data android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"/>

매니패스트에서 메타데이터를 추가해준다.

API KEY의 value 자리에 아까 발급받은 API 키를 넣는다.

 

 

이제 사용하고 싶은 곳에 MapView를 만들어준다.

 

 

onCreate

mapView.onCreate(savedInstanceState)
            // 맵 불러오기
            mapView.getMapAsync {
                map = it
            }

화면이 생성될때

mapView도 생성되게 onCreate를 호출하여 주고,

getMapAsync로 맵을 불러와준다.

 

생명 주기

/**
     * 라이프 사이클에 맞게 맵뷰를 처리해줌
     */
    override fun onResume() {
        binding.mapView.onResume()
        super.onResume()
    }

    override fun onStart() {
        super.onStart()
        binding.mapView.onStart()
    }

    override fun onPause() {
        super.onPause()
        binding.mapView.onPause()
    }

    override fun onStop() {
        super.onStop()
        binding.mapView.onStop()
    }

    override fun onLowMemory() {
        super.onLowMemory()
        binding.mapView.onLowMemory()
    }

라이프사이클(액티비티,프래그먼트) 에 맞게

맵뷰를 설정해준다.

 

이제 잘 불러와 진것을 확인할 수 있다.

 

 

 

https://github.com/HanYeop/RunnersHigh

 

HanYeop/RunnersHigh

달리기 기록 앱. Contribute to HanYeop/RunnersHigh development by creating an account on GitHub.

github.com

 

 

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading