구글의 맵 API를 사용하면
앱에서 지도를 활용할 수 있다.
2021.06.25 - [안드로이드/기본] - [Kotlin] 안드로이드 권한 (Permission) 체크하기 - 위치정보 사용하기
최우선 적으로, 위치 권한부터 추가해야한다.
사용해보기
API 발급받기
https://cloud.google.com/maps-platform/
사이트로 들어가서 시작하기를 클릭하여
프로젝트를 생성해준다.
생성이 완료되면 Maps SDK for Android를 클릭하여 맵 API로 들어가서
좌측에서 사용자인증정보를 들어간다.
API키를 발급받을 수 있다.
API키는 노출되면 안되므로 별도로 저장하고,
제한사항에 SHA-1 키를 등록하여준다.
2021.01.22 - [안드로이드/파이어베이스] - [Android] 안드로이드 스튜디오 앱 apk 추출 후 파이어베이스 구글 로그인이 되지 않는 현상
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