Android - Google Map API 설치부터 심화 활용까지 (설치) (1) (Kotlin)

업데이트:

  • 연구주제 : Android - Google Map 활용 (Kotlin)
  • 연구목적 : 안드로이드에서의 코틀린 활용
  • 연구일시 : 2020년 04월 06일 09:00~17:00
  • 연구자 : 이재환 ljh951103@naver.com
  • 연구장비 : HP EliteDesk 800 G4 TWR, Kotlin, Android studio, IntelliJ
  • 관련연구 : Java, Android, Kotlin, Google, API


서론

image

일상 속에서 맵은 굉장히 활용도가 높다.
개발자 입장에서 앱을 개발할 때, 맵을 활용하고자 한다면 당연 구글 맵이 1순위가 된다.
왜냐하면 구글 맵은 안드로이드 스마트폰의 기본 내장 애플리케이션이기 때문에 별 다른 제약사항이 없기 떄문이다.

이번 포스팅부터는 구글 맵 API 설치 뿐만 아니라 심화 활용까지 다루어 보겠다.

image

image

최종 목표는 위의 사진의 지도처럼 만드는 것이다.


본론

우선 이번 포스팅에서 다룰 것은 API를 받아오는 것이다.

API Key 받아오기

https://console.cloud.google.com/apis

다음 주소로가서 새 프로젝트를 생성해야 한다.

image

위의 ‘새 프로젝트’ 를 클릭한다.


image

그리고 프로젝트 이름을 입력하고 ‘만들기’ 를 클릭한다.


image

프로젝트가 만들어졌으면 자신의 프로젝트로 간다.


image

좌측의 API 및 서비스 - 라이브러리로 이동한다.


image

Maps SDK for Android 항목을 클릭한다.
그리고 사용설정을 한다.


image

이제 본인의 페이지로 들어가 사용자 인증 정보를 확인하면 구글 맵 키를 확인할 수 있다.


안드로이드 스튜디오 설정

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

위에서 확인한 키를 안드로이드 매니페스트 파일에 정의해준다.


image

다음과 같이 Tools > SDK Manager > SDK Tools 에서 Google Play services를 체크하고 설치를 진행한다.


이제 앱 수준, Gradle 파일에 구글 플레이 라이브러리를 추가한 후, async를 눌러준다.

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.gms:play-services-maps:17.0.0'
    implementation 'com.google.android.gms:play-services-location:17.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}


구글 맵 띄우기

이번 예시에서는 프래그먼트로 띄워보겠다.


class MapFragment : Fragment(),  OnMapReadyCallback {

    private lateinit var mMap: GoogleMap
    override fun onCreateView(

        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        val rootView: View = inflater.inflate(R.layout.fragment_map, container, false)
        val mapFragment = childFragmentManager.findFragmentById(R.id.mapview) as SupportMapFragment

        mapFragment.getMapAsync(this)

        // Inflate the layout for this fragment

        return rootView
    }

    override fun onMapReady(googleMap: GoogleMap) {
        mMap = googleMap
        val marker = LatLng(35.241615, 128.695587)
        mMap.addMarker(MarkerOptions().position(marker).title("Marker LAB"))
        mMap.moveCamera(CameraUpdateFactory.newLatLng(marker))
    }
}


?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <fragment
        android:id="@+id/mapview"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:layout="@layout/abc_search_view" />

</LinearLayout>


코드를 실행시켜보면 맵이 정상적으로 실행됨을 알 수 있다.


결론

구글 맵 API를 받아와서 실행 시키는 것 까지 해보았다. 다음 포스팅부터는 맵을 활용하는 부분에 대해 다루겠다.


향후과제

구글 맵 활용


참고자료

https://webnautes.tistory.com/647


Writer: Jae-Hwan Lee

댓글남기기