IT/Android (안드로이드)

Android N.4-1 Wandering in Google maps with Kotlin

Edmond Na 2025. 4. 21. 23:29

2021. 4. 10 작성

#0 Google Maps Template on Android

Android 에서의 구글맵을 사용하기 위한 첫번째 단계입니다.

  1. 안드로이드 스튜디오 프로젝트를 새로 만듭니다.
  2. 이때 Google Maps Activity 템플릿을 선택합니다.
  3. 이름과 패키지명을 선택하시고, API 최소 레벨은 19 이상으로 합니다.

#1 Google API Key 발급 받기

Android Developers에서는 Android 개발자에게 다양한 API를 제공합니다. 누구나 사용할 수 있으며, 쉽게 사용할 수 있습니다. 하지만 오늘 다룰 Google Map API를 사용하기 위해서는 Key를 발급 받아야합니다.

과정이 어렵지 않으므로 순서대로 잘 따라하시면 됩니다.

과정 1) 'Google API Console' 접속.

과정 2) 'Google Maps Android API' 선택.

과정 3) '프로젝트 생성' : 단순히 키를 갖고 있는 프로젝트. 안드로이드 프로젝트 생성이랑 무관.

과정 4) '사용 설정' : Key 사용을 허용.

과정 5) '사용자 인증 정보 만들기' 클릭.

과정 6) 'Key 제한 설정'

과정 7) 패키지명 및 SHA-1 입력.

과정 8) 저장.

#2 Google API Key on Android Studio

  1. 먼저 시작하기에 앞서 위와 같이 구글맵관련 라이브러리를 추가해줍니다. (build.gradle)
implementation 'com.google.android.gms:play-services-maps:10.2.0'
  1. 매니페스트에 위와같은 를 추가하고 value에 자신이 발급받은 구글맵 API 키를 넣어주면 됩니다.
<meta-data  
    android:name="com.google.android.geo.API_KEY"  
    android:value="발급받은 키"/>
  1. fragment를 선언하여 그 안에 해당 코드를 입력합니다.
<com.google.android.gms.maps.MapView  
    android:id=”@+id/fragment_main_mv”  
    android:layout_width=”match_parent”  
    android:layout_height=”match_parent” />
  1. 해당 뷰의 코드로 돌아와 OnMapReadyCallback를 상속받고 함수를 override 받는다.
override fun onMapReady(googleMap: GoogleMap?) {
    val seoul = LatLng(37.566, 126.978)
    googleMap?.moveCamera(CameraUpdateFactory.newLatLng(seoul))
    googleMap?.moveCamera(CameraUpdateFactory.zoomTo(10f))
}
  1. 마지막으로 해당되는 함수(onStart, onResume, onPause, onStop, onDestroy, onLowMemory)를 override 받은 후 앱을 실행한다.
override fun onStart() {
    mapView.onStart()
    super.onStart()
}

override fun onResume() {
    mapView.onResume()
    super.onResume()
}

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

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

override fun onDestroy() {
    mapView.onDestroy()
    super.onDestroy()
}

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