Haritalar Yazma Kitaplığı

Jetpack Compose, kullanıcı arayüzü geliştirmesini basitleştiren ve 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çıklar ve ardından Jetpack Compose'un gerisini halledersiniz.

Android için Haritalar SDK'sı Haritalar SDK'sı 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 Yazma kitaplığı, pek ç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şlevler ve veri türlerinden bazıları şunlardır:

Oluşturulabilir Açıklama
Çevre Haritaya daire eklemek için derlenebilir işlev.
GoogleMap Harita eklemek için composable işlev.
GroundOverlay Bir haritaya zemin bindirme eklemek için derlenebilir işlev.
MapProperties Haritada değiştirilebilen mülklerin veri türü.
MapUISettings Bir haritadaki kullanıcı arayüzü ile ilgili ayarlar için veri türü.
İşaretçi Haritaya işaretçi eklemek için composable.
Poligon Haritaya bir poligon eklemek için composable işlev.
Çoklu çizgi Bir haritaya çoklu çizgi eklemek için composable işlev.
TileOverlay Bir haritaya karo yer paylaşımı eklemek için derlenebilir işlev.

Tüm composable işlevleri ve veri türlerinin tam listesi için Haritalar Oluşturma kitaplığı referansı bölümüne bakın.

Koşullar

Haritalar Yazma kitaplığını Android için Haritalar SDK'sı ile kullanmak üzere şunları yapmanız gerekir:

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

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

  • Bir sonraki bölümde açıklandığı gibi, projede Haritalar Oluşturma kitaplığını yükleyin.

Döşeme

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

  1. Modül düzeyindeki build.gradle 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:4.3.3'
    }

  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 kamera Singapur merkezlidir. Kameranın konumunu ayarlamak için cameraPositionState içinde bir CameraPositionState de oluşturulur ve sağlanır.

Ardından örnek, haritaya bir işaretçi eklemek için harita içeriğinde Markercomposable'ı çağırır.

Bu örneği, Görünümler kullanılarak harita eklenen bir örnekle karşılaştırmak için QuickStart'ı inceleyin. composable işlevlerinin neden daha az kod gerektirdiğini ve haritanın yaşam döngüsü konusunda endişelenmenize gerek olmadığını fark edeceksiniz.

Haritada özellikleri ayarlama

MapProperties nesnesi veya kullanıcı arayüzüyle ilgili mülkler için bir MapUiSettings nesnesi sağlayarak haritadaki mülkleri ayarlayabilirsiniz. Bu nesneleri, haritanın yeniden oluşturulmasını tetikleyecek şekilde değiştirebilirsiniz.

Aşağıdaki örnekte, haritadaki yakınlaştırma kontrollerini açıp kapamak için bir Materyal Tasarım bileşeni olan Anahtar'ı 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?