Maps Android KTX

지도 Android Kotlin 확장 프로그램(KTX)은 Android용 Maps SDK와 Android용 Maps SDK 유틸리티 라이브러리를 위한 Kotlin 확장 프로그램 모음입니다. 이 확장 프로그램에서는 Android용 Maps SDK 기반으로 개발할 때 간결하고 관용적인 Kotlin을 작성할 수 있는 Kotlin 언어 기능을 제공합니다. 지도 KTX는 오픈소스로 제공되며 GitHub에서 예시와 함께 제공됩니다.

설치

Android용 Maps SDK 및 Android용 Maps SDK 유틸리티 라이브러리(선택사항)용 KTX를 설치하려면 build.gradle 파일에 다음 종속 항목을 추가하세요.

dependencies {

    // KTX for the Maps SDK for Android library
    implementation 'com.google.maps.android:maps-ktx:5.0.0'
}

사용 예:

KTX 라이브러리를 사용하면 확장 프로그램 기능, 이름이 지정된 매개변수, 기본 인수, 비구조화 선언, 코루틴 등의 여러 Kotlin 언어 기능을 활용할 수 있습니다.

코루틴을 사용하여 GoogleMap 검색

다음과 같이 코루틴을 사용하여 GoogleMap을 검색할 수 있습니다.

lifecycleScope.launch {
  lifecycle.repeatOnLifecycle(Lifecycle.State.CREATED) {
    val mapFragment: SupportMapFragment? =
      supportFragmentManager.findFragmentById(R.id.map) as? SupportMapFragment
    val googleMap: GoogleMap? = mapFragment?.awaitMap()
  }
}

마커 추가

DSL 스타일 메서드 addMarker()를 사용하여 마커를 추가할 수 있습니다.

val sydney = LatLng(-33.852, 151.211)
val marker = googleMap.addMarker {
  position(sydney)
  title("Marker in Sydney")
}

카메라 이벤트 수집

카메라 이동과 같은 이벤트는 Kotlin Flow를 통해 수집할 수 있습니다.

lifecycleScope.launch {
  lifecycle.repeatOnLifecycle(Lifecycle.State.CREATED) {
    googleMap.cameraMoveEvents().collect {
      print("Received camera move event")
    }
  }
}

지원되는 기능의 전체 목록은 참조 문서에서 확인할 수 있습니다.

샘플 애플리케이션 사용해보기

이 라이브러리용 GitHub 저장소에는 자체 앱에서 Maps KTX 라이브러리를 사용할 수 있는 방법을 보여주는 데모 애플리케이션도 포함되어 있습니다.

데모 애플리케이션을 사용해보려면 다음 단계를 따르세요.

  1. GitHub에서 ZIP 파일을 복제하거나 다운로드합니다.
  2. Android 스튜디오에서 파일 -> 열기를 선택하고 디렉터리로 이동하여 방금 복제하거나 다운로드한 폴더를 엽니다.
  3. 데모 앱에 API 키를 추가합니다.
    1. Android용 Maps SDK 키를 가져옵니다.
    2. 루트 디렉터리에서 secrets.properties하는 파일을 만듭니다. API 키를 보호하기 위해 이 파일의 버전을 제어해서는 안 됩니다.
    3. 다음 한 줄을 secrets.properties에 추가합니다.
      MAPS_API_KEY="YOUR_API_KEY"
      여기서 YOUR_API_KEY는 첫 단계에서 획득한 실제 API 키입니다. secrets.defaults.properties를 예로 살펴볼 수 있습니다.
  4. 실행 구성에서 app-ktx 모듈을 선택합니다.
  5. Run 'app-ktx' 실행을 선택합니다.

다음 단계

다른 Google Maps Platform용 Kotlin 확장 프로그램 라이브러리에 관심이 있을 수도 있습니다.

  • Android용 Maps SDK 유틸리티 라이브러리용 KTX
  • Android용 Places SDK용 KTX