ספרייה ליצירה של מפות Google

Jetpack Compose הוא ערכת כלים הצהרתית ונייטיבית לממשק משתמש, שמפשטת ומאיצה את פיתוח ממשק המשתמש. עם Jetpack פיתוח נייטיב, אתם מתארים איך אתם רוצים שהאפליקציה תיראה, ו-Jetpack פיתוח נייטיב מטפל בכל השאר.

ספריית Maps Compose של Maps SDK ל-Android היא קבוצה של פונקציות וסוגי נתונים שניתן להרכיב מהם קוד פתוח, ואפשר להשתמש בהם עם Jetpack Compose כדי ליצור את האפליקציה.

ספריית Maps Compose מכילה פונקציות וסוגי נתונים שניתנים להרכבה, ומאפשרת לכם לבצע משימות נפוצות רבות. דוגמאות לפונקציות ולסוגי נתונים נפוצים שאפשר להשתמש בהם:

קומפוזבילי תיאור
Circle פונקציה שאפשר להשתמש בה כדי להוסיף עיגול למפה.
GoogleMap פונקציה שאפשר להרכיב ממנה פונקציות אחרות כדי להוסיף מפה.
GroundOverlay פונקציה שאפשר להשתמש בה כדי להוסיף שכבת על של קרקע למפה.
MapProperties סוג הנתונים של מאפיינים שאפשר לשנות במפה.
MapUISettings סוג הנתונים של הגדרות שקשורות לממשק המשתמש במפה.
סמן פונקציה שאפשר להשתמש בה כדי להוסיף סמן למפה.
פוליגון פונקציה שאפשר להרכיב ממנה פונקציות אחרות כדי להוסיף פוליגון למפה.
קו פוליגוני פונקציה שאפשר להרכיב ממנה פונקציות אחרות כדי להוסיף קו שבור למפה.
TileOverlay פונקציה שאפשר להרכיב כדי להוסיף שכבת על של משבצות למפה.

רשימה מלאה של כל הפונקציות והסוגים של הנתונים שאפשר להשתמש בהם מופיעה במאמר Maps Compose library reference.

דרישות

כדי להשתמש בספריית Maps Compose עם SDK של מפות ל-Android, צריך:

  • מורידים ומתקינים את Android Studio Arctic Fox.
  • יוצרים פרויקט במפות Google ב-Android Studio עם:

    • סוג התבנית Empty Compose Activity. התבנית הזו מוסיפה את התלויות הנדרשות על ידי Jetpack Compose.
    • גרסת ה-SDK המינימלית מוגדרת ל-API 21: Android 5.0 (Lollipop) ואילך.
    • השפה Language הוגדרה ל-Kotlin.
  • מקבלים מפתח API ומוסיפים אותו לפרויקט.

  • מתקינים את ספריית Maps Compose בפרויקט כמו שמתואר בקטע הבא.

התקנה

כדי להתקין את ספריית Maps Compose בפרויקט של מפות Google:

  1. מוסיפים את יחסי התלות הבאים לקובץ build.gradle.kts ברמת המודול:

      dependencies {
    
        // Android Maps Compose composables for the Maps SDK for Android
        implementation("com.google.maps.android:maps-compose:6.12.0")
    }

  2. כדי לסנכרן את השינויים האלה, צריך לבצע מחדש את ה-build של הפרויקט ב-Android Studio.

הוספת מפה לאפליקציה

בדוגמה הבאה אפשר לראות איך משתמשים ברכיב GoogleMap כדי להוסיף מפה.

val singapore = LatLng(1.35, 103.87)
val singaporeMarkerState = rememberUpdatedMarkerState(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"
  )
}

בדוגמה הזו, המפה תופסת את השטח המקסימלי המותר והמצלמה שלה ממוקמת במרכז של סינגפור. בנוסף, נוצר CameraPositionState ומועבר אל cameraPositionState כדי להגדיר את מיקום המצלמה.

בדוגמה הבאה מבוצעת קריאה לרכיב Marker שניתן להרכבה בתוכן של המפה כדי להוסיף סמן למפה.

כדי להשוות את הדוגמה הזו לדוגמה שמוסיפה מפה באמצעות Views, אפשר לעיין בQuickStart. שימו לב שפונקציות שאפשר להרכיב דורשות פחות קוד, ואין צורך לדאוג לגבי מחזור החיים של המפה.

הגדרת נכסים במפה

אתם יכולים להגדיר מאפיינים במפה על ידי ציון אובייקט MapProperties או אובייקט MapUiSettings למאפיינים שקשורים לממשק המשתמש. אפשר לשנות את האובייקטים האלה כדי להפעיל יצירה מחדש של המפה.

בדוגמה שלמטה, נעשה שימוש במתג, שהוא רכיב של Material Design, כדי להפעיל או להשבית את אמצעי הבקרה של הזום במפה.

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)
    }
  )
}

המאמרים הבאים