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çıklıyor ve 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 kaynak, birleştirilebilir işlevler ve veri türlerinden oluşan bir pakettir.

Haritalar Compose kitaplığı, birçok yaygın görevi gerçekleştirmenize olanak tanıyan birleştirilebilir işlevler ve veri türleri içerir. Sık kullanılan birleştirilebilir işlevler ve veri türlerinden bazıları şunlardır:

Oluşturulabilir Açıklama
Yuvarlak Haritaya daire eklemek için birleştirilebilir işlev.
GoogleMap Harita eklemek için birleştirilebilir işlev.
GroundOverlay Haritaya zemin bindirme eklemek için derlenebilir işlev.
MapProperties Haritada değiştirilebilen tesisler 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 eklemek için birleştirilebilir işlev.
Poligon Haritaya poligon eklemek için birleştirilebilir işlev.
Çoklu çizgi Haritaya poli çizgisi eklemek için birleştirilebilir işlev.
TileOverlay Bir haritaya karo yer paylaşımı eklemek için birleştirilebilir işlev.

Tüm derlenebilir işlevlerin ve veri türlerinin tam listesi için Haritalar Compose kitaplığı referansı başlıklı makaleyi inceleyin.

Şartlar

Maps Compose kitaplığını Android için Haritalar SDK'sı ile kullanmak istiyorsanız şunları yapmanız gerekir:

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

    • Boş Oluşturma Etkinliği şablon türü. Bu şablon, Jetpack Compose tarafından gerekli olan 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ı edinip projenize ekleyin.

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

Kurulum

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

  1. Modül düzeyindeki build.gradle.kts dosyanıza aşağıdaki 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 Android Studio'da projenizi yeniden oluşturun.

Uygulamanıza harita ekleyin

Aşağıdaki örnekte, harita eklemek için GoogleMap bileşeninin nasıl kullanılacağı gösterilmektedir.

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

Bu örnekte, harita izin verilen maksimum alanı kaplıyor ve kamerası Singapur'u merkez alıyor. Kameranın konumunu ayarlamak için cameraPositionState içinde bir CameraPositionState da oluşturulur ve sağlanır.

Ardından örnek, haritaya işaretçi eklemek için haritanın içeriğinde Marker bileşenini çağırır.

Bu örneği, Görüntüleme Sayısı'nı kullanarak harita ekleyen bir örnekle karşılaştırmak için Hızlı Başlangıç bölümüne bakın. 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 tesis ayarlama

Kullanıcı arayüzüyle ilgili özellikler için bir MapProperties nesnesi veya MapUiSettings nesnesi sağlayarak haritada özellikler 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?