Haritalar Yazma Kitaplığı

Jetpack Oluşturma basitleştiren ve hızlandıran bildirim temelli, yerel bir kullanıcı arayüzü araç setidir Kullanıcı arayüzü geliştirme. Jetpack Compose ile uygulamanızın nasıl görünmesini istediğinizi açıklarsınız gerisini Jetpack Compose'a bırakın.

Haritalar'da Oluşturma kitaplığı Android için Haritalar SDK'sı, açık kaynaklı composable işlevlerden oluşan bir kümedir. ve Jetpack Compose ile kullanabileceğiniz veri türleri hakkında bilgi edinin.

Haritalar Yazma Sihirbazı kitaplığı, işletmenizin yaygın olarak kullanılan birçok görev vardır. Yaygın olarak kullanılan composable işlevlerinden bazıları ve veri türleri ş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 bkz. Haritalar Oluşturma kitaplığı referansı.

Şartlar

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

  • İndir ve Android Studio Arctic Fox'u yükleyecekler.
  • Google Haritalar projesi oluşturma şununla Android Studio'da:

    • Boş Oluşturma Etkinliği şablon türü. Bu şablonda, resimlerinizin ve Jetpack Compose’un gerektirdiği bağımlılıkları ortaya koyabilir.
    • Minimum SDK, API 21: Android 5.0 (Lollipop) veya sonraki sürümler olarak ayarlanmalıdır.
    • Dil, Kotlin olarak ayarlanmalıdır.
  • API anahtarı edinme ve projenize ekleyin.

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

Kurulum

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, GoogleMap composable'ı tıklayın.

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

Örnek, İşaretçi composable'ları ekleyebilirsiniz.

Bu örneği, Görünümler'i kullanarak harita ekleyen bir örnekle karşılaştırmak için QuickStart. Ne kadar composable daha az kod gerektirir ve haritanın yaşam döngüsüyle ilgili endişelenmeniz gerekmez.

Haritada özellikleri ayarlama

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

Aşağıdaki örnekte bir Switch, bir Materyal Tasarım bileşeni, haritadaki yakınlaştırma kontrollerini açın/kapatı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?