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

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

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

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

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

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

דרישות

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

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

    • סוג התבנית Empty Compose Activity. התבנית הזו מוסיפה את התלויות הנדרשות על ידי Jetpack Compose.
    • גרסת ה-SDK המינימלית מוגדרת ל-API 21: Android 5.0 (Lollipop) ואילך.
    • ההגדרה שפה הוגדרה לערך 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 למאפיינים שקשורים לממשק המשתמש. אפשר לשנות את האובייקטים האלה כדי להפעיל יצירה מחדש של המפה.

בדוגמה שלמטה, משתמשים בSwitch, ברכיב 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)
    }
  )
}

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