Haritalar Yazma Kitaplığı

Jetpack Compose, kullanıcı arayüzü geliştirmeyi basitleştirip hızlandıran bildirim temelli, yerel bir kullanıcı arayüzü araç setidir. Jetpack Compose ile uygulamanızın nasıl görünmesini istediğinizi açıklayın. Gerisini Jetpack Compose'a bırakıyorsunuz.

Android için Haritalar SDK'sının Haritalar Compose kitaplığı, uygulamanızı oluşturmak için Jetpack Compose ile kullanabileceğiniz açık kaynaklı composable işlevler ve veri türlerinden oluşan bir gruptur.

Haritalar Oluşturma Kitaplığı kitaplığı, birçok yaygın görevi gerçekleştirmenizi sağlayan composable işlevler ve veri türleri içerir. Yaygın olarak kullanılan composable işlevleri ve veri türlerinden bazıları şunlardır:

Oluşturulabilir Açıklama
Çevre Haritaya daire eklemek için oluşturulan işlev.
GoogleMap Harita eklemek için oluşturulan işlev.
GroundOverlay Haritaya zemin bindirme eklemek için derlenebilir işlev.
MapProperties Haritada değiştirilebilen mülkler için veri türü.
MapUISettings Haritadaki kullanıcı arayüzü ile ilgili ayarlar için veri türü.
İşaretçi Haritaya işaretçi eklemeyi sağlayan özelleştirilebilir işlev.
Poligon Haritaya poligon eklemeye yarayan özelleştirilebilir işlev.
Çoklu çizgi Haritaya çoklu çizgi eklemek için oluşturulan işlev.
TileOverlay Haritaya karo yer paylaşımı eklemek için oluşturulan işlev.

Oluşturulabilir tüm işlevlerin ve veri türlerinin tam listesi için Haritalar Oluşturma kitaplık referansı bölümüne bakın.

Koşullar

Maps Compose kütüphanesini Android için Haritalar SDK'sı ile kullanmak istiyorsanız şunları yapmanız gerekir:

  • Android Studio Arctic Fox'u indirip yükleyin.
  • Android Studio'da aşağıdakileri kullanarak bir Google Haritalar projesi oluşturun:

    • Boş Oluşturma Etkinliği şablon türü. Bu şablon, Jetpack Compose için gerekli bağımlılıkları ekler.
    • Minimum SDK, API 21: Android 5.0 (Lollipop) veya sonraki sürümler olarak ayarlanmalıdır.
    • Dil, Kotlin olarak ayarlanmalıdır.
  • Bir API anahtarı edinin ve bunu projenize ekleyin.

  • Bir sonraki bölümde açıklandığı şekilde, projeye Maps Compose kitaplığını yükleyin.

Döşeme

Google Haritalar projenize Maps Compose kitaplığını yüklemek için:

  1. Modül düzeyindeki build.gradle dosyanıza şu bağımlılıkları ekleyin:

      dependencies {
    
    
        // Android Maps Compose composables for the Maps SDK for Android
        implementation 'com.google.maps.android:maps-compose:6.1.0'
    }

  2. Bu değişiklikleri senkronize etmek için projenizi Android Studio'da yeniden oluşturun.

Uygulamanıza harita ekleyin

Aşağıdaki örnekte harita eklemek için GoogleMap composable'ın nasıl kullanılacağı gösterilmektedir.

val singapore = LatLng(1.35, 103.87)
val cameraPositionState = rememberCameraPositionState {
  position = CameraPosition.fromLatLngZoom(singapore, 10f)
}
GoogleMap(
  modifier = Modifier.fillMaxSize(),
  cameraPositionState = cameraPositionState
) {
  Marker(
    state = MarkerState(position = singapore),
    title = "Singapore",
    snippet = "Marker in Singapore"
  )
}

Bu örnekte, harita izin verilen maksimum alanı kaplar ve kamerası Singapur çevresindedir. Kameranın konumunu ayarlamak için, cameraPositionState içinde bir CameraPositionState de oluşturulur ve sağlanır.

Bu örnek, haritaya bir işaretçi eklemek için haritanın içeriğinde composable'ı (İşaretçi) çağırır.

Bu örneği, Görünümler'i kullanarak harita ekleyen bir örnekle karşılaştırmak için QuickStart'ı inceleyin. Oluşturulabilir işlevlerin daha az kod gerektirdiğini ve haritanın yaşam döngüsüyle ilgili endişelenmenize gerek olmadığını göreceksiniz.

Haritada özellikleri ayarlama

Kullanıcı arayüzü ile ilgili özellikler için bir MapProperties nesnesi veya bir MapUiSettings nesnesi sağlayarak haritadaki özellikleri ayarlayabilirsiniz. Haritanın yeniden oluşturulmasını tetiklemek için bu nesneleri değiştirebilirsiniz.

Aşağıdaki örnekte, haritadaki yakınlaştırma kontrollerini açıp kapatmak için bir Materyal Tasarım bileşeni olan Switch'i kullanın.

var uiSettings by remember { mutableStateOf(MapUiSettings()) }
var properties by remember {
  mutableStateOf(MapProperties(mapType = MapType.SATELLITE))
}

Box(Modifier.fillMaxSize()) {
  GoogleMap(
    modifier = Modifier.matchParentSize(),
    properties = properties,
    uiSettings = uiSettings
  )
  Switch(
    checked = uiSettings.zoomControlsEnabled,
    onCheckedChange = {
      uiSettings = uiSettings.copy(zoomControlsEnabled = it)
    }
  )
}

Sırada ne var?