Jetpack Compose הוא ערכת כלים הצהרתית ונייטיבית לממשק משתמש, שמפשטת ומאיצה את פיתוח ממשק המשתמש. עם Jetpack Compose, אתם מתארים איך אתם רוצים שהאפליקציה תיראה, ו-Jetpack Compose כבר ידאג לכל השאר.
ספריית Maps Compose ל-SDK של מפות ל-Android היא קבוצה של פונקציות קומפוזביליות וסוגי נתונים בקוד פתוח, שניתן להשתמש בהם עם Jetpack Compose כדי ליצור את האפליקציה.
ספריית Maps Compose מכילה פונקציות וסוגי נתונים שניתן להרכיב מהם קוד, ומאפשרת לבצע משימות נפוצות רבות. דוגמאות לפונקציות נפוצות שאפשר להרכיב מהן פונקציות אחרות ולסוגי נתונים:
| קומפוזבילי | תיאור |
|---|---|
| עיגול | פונקציה קומפוזבילית להוספת עיגול למפה. |
| GoogleMap | פונקציה קומפוזבילית להוספת מפה. |
| GroundOverlay | פונקציה קומפוזבילית להוספת שכבת על של קרקע למפה. |
| MapProperties | סוג הנתונים של מאפיינים שאפשר לשנות במפה. |
| MapUISettings | סוג הנתונים של הגדרות שקשורות לממשק המשתמש במפה. |
| סמן | פונקציה קומפוזבילית להוספת סמן למפה. |
| Polygon | פונקציה קומפוזבילית להוספת פוליגון למפה. |
| קו פוליגוני | פונקציה קומפוזבילית להוספת קו פוליגוני למפה. |
| TileOverlay | פונקציה קומפוזבילית להוספת שכבה מעל קטעי המפה למפה. |
רשימה מלאה של כל הפונקציות הקומפוזביליות וטיפוסי הנתונים מופיעה במאמר ספריית Maps Compose.
דרישות
כדי להשתמש בספריית Maps Compose עם SDK של מפות ל-Android, צריך:
- מורידים ומתקינים את Android Studio Arctic Fox.
יוצרים פרויקט במפות Google ב-Android Studio עם:
- סוג התבנית Empty Compose Activity. התבנית הזו מוסיפה את התלות הנדרשת על ידי Jetpack Compose.
- גרסת ה-SDK המינימלית מוגדרת לרמת Android API 23 (Marshmallow; Android 6.0) או לגרסה מתקדמת יותר.
- ההגדרה שפה מוגדרת ל-Kotlin.
מקבלים מפתח API ומוסיפים אותו לפרויקט.
מתקינים את ספריית Maps Compose בפרויקט כמו שמתואר בקטע הבא.
התקנה
כדי להתקין את ספריית Maps Compose בפרויקט של מפות Google:
מוסיפים את יחסי התלות הבאים לקובץ
build.gradle.ktsברמת המודול:dependencies { // Android Maps Compose composables for the Maps SDK for Android implementation("com.google.maps.android:maps-compose:6.12.0") }
כדי לסנכרן את השינויים האלה, צריך לבנות מחדש את הפרויקט ב-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) } ) }
המאמרים הבאים
- אפשר לעיין בדף הפרויקט של ספריית Maps Compose ב-GitHub.
- מאמרי העזרה בנושא Jetpack Compose