ה-SDK של מפות ל-Android יכול להציג תמונה בפורמט bitmap של מפה, עם אינטראקטיביות מוגבלת למשתמש. המפה הזו נקראת מצב טעינה מהירה.
דוגמאות קוד
המאגר ApiDemos ב-GitHub כולל דוגמאות שממחישות את השימוש במצב Lite:
- LiteDemoActivity – Java: העקרונות הבסיסיים של שימוש במפה במצב בסיסי ב-Java
- LiteDemoActivity – Kotlin: היסודות של שימוש במפה במצב טעינה מהירה ב-Kotlin
- LiteListDemoActivity – Java: הצגת מפות ביעילות ב-ListViews באמצעות מצב טעינה מהירה ב-Java
- LiteListDemoActivity – Kotlin: הצגת מפות ביעילות ב-ListViews באמצעות מצב טעינה מהירה ב-Kotlin
סקירה כללית על מצב Lite
מפה במצב בסיסי היא תמונה בפורמט בייטמאפ של מפה במיקום וברמת התמקדות מסוימים. מצב Lite תומך בכל סוגי המפות (רגילות, היברידיות, לוויין, שטח) ובקבוצת משנה של הפונקציונליות שסופקת על ידי ה-API המלא. מצב Lite שימושי כשרוצים להציג מספר מפות בשידור או מפה קטנה מדי שלא תומכת באינטראקציה משמעותית.
משתמשים שצופים במפה לא יכולים לשנות את מרחק התצוגה או להזיז את המפה. סמלים במפה מאפשרים למשתמשים להציג את המפה באפליקציית מפות Google לנייד ולבקש מסלול הגעה.
הוספת מפה במצב טעינה מהירה
במצב טעינה מהירה נעשה שימוש באותן מחלקות וממשקים כמו ב-API המלא של מפות Google ל-Android. אפשר להגדיר GoogleMap
למצב בסיסי בדרכים הבאות:
- כמאפיין XML של
MapView
אוMapFragment
- או באובייקט
GoogleMapOptions
כמאפיין XML של MapView
או MapFragment
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:name="com.google.android.gms.maps.MapFragment"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
map:cameraZoom="13"
map:mapType="normal"
map:liteMode="true"/>
באובייקט GoogleMapOptions
Kotlin
val options = GoogleMapOptions() .liteMode(true)
Java
GoogleMapOptions options = new GoogleMapOptions() .liteMode(true);
לפרטים על הגדרת המצב הראשוני של המפה, עיינו במדריך לאובייקט המפה.
כוונות להפעלת תצוגת מפה או בקשת מסלול הגעה
כברירת מחדל, בסרגל הכלים בפינה השמאלית התחתונה של המפה מופיעים סמלים שמספקים גישה לתצוגת מפה או לבקשת מסלול באפליקציה לנייד של מפות Google. אפשר להשבית את סרגל הכלים באמצעות הפקודה UiSettings.setMapToolbarEnabled(false)
. לפרטים נוספים, ראו את מסמכי העזרה של סרגל הכלים.
כמו כן, כברירת מחדל, כשמשתמש מקייש על המפה, ה-API מפעיל את האפליקציה לנייד של מפות Google. אפשר לשנות את ההגדרה הזו באמצעות GoogleMap.setOnMapClickListener()
כדי להגדיר מאזין משלכם. אפשר גם להשבית אירועי קליקים במפה על ידי קריאה ל-setClickable()
בתצוגה שמכילה את MapView
או MapFragment
. פרטים על שתי השיטות האלה מופיעים במסמכי התיעוד בנושא אירועים.
אירועים במחזור החיים
כשמשתמשים ב-API במצב אינטראקטיבי מלא, משתמשים בכיתה MapView
חייבים להעביר את כל השיטות של מחזור החיים של הפעילות לשיטות התואמות בכיתה MapView
. דוגמאות לשיטות מחזור החיים הן onCreate()
, onDestroy()
, onResume()
ו-onPause()
.
כשמשתמשים בכיתה MapView
במצב בסיסי, העברת אירועי מחזור חיים היא אופציונלית, מלבד במקרים הבאים:
- חובה להפעיל את
onCreate()
, אחרת לא תופיע מפה. - אם רוצים להציג את הנקודה 'המיקום שלי' במפה במצב בסיסי ולהשתמש במקור המיקום שמוגדר כברירת מחדל, צריך להפעיל את הפונקציות
onResume()
ו-onPause()
, כי מקור המיקום יתעדכן רק בין הקריאות האלה. אם אתם משתמשים במקור מיקום משלכם, אין צורך להפעיל את שתי השיטות האלה.
תכונות API נתמכות
בטבלה הבאה מתוארת ההתנהגות של מפה במצב Lite בכל תחום של פונקציונליות ה-API. אם אפליקציה קוראת לשיטה שלא נתמכת במצב Lite, ביומן של ה-API תירשם הודעת אזהרה.
פונקציונליות | |
---|---|
סוגי מפות | האם יש תמיכה? כן
סוגי המפות הבאים זמינים דרך GoogleMapOptions.mapType() ו-GoogleMap.setMapType() : MAP_TYPE_NORMAL , MAP_TYPE_SATELLITE , MAP_TYPE_TERRAIN , MAP_TYPE_HYBRID , MAP_TYPE_NONE |
קווים פוליגונים, מעגלים | האם יש תמיכה? כן
הפונקציונליות של מצב Lite לצורות תואמת ל-API המלא. |
היטל | האם יש תמיכה? כן
הפונקציונליות של המצב הפשוט של Projection תואמת ל-API המלא. |
המיקום שלי | האם יש תמיכה? כן
הפונקציונליות של המצב הפשוט של השכבה 'המיקום שלי' תואמת ל-API המלא. |
שוליים של המפה | האם יש תמיכה? כן
התמיכה במצב טעינה מהירה במילוי של מפה תואמת ל-API המלא. |
חלונות מידע | האם יש תמיכה? כן
אם תגדירו את title() של סמן, חלון המידע שמוגדר כברירת מחדל יופיע כשהמשתמש ילחץ על הסמן. אפשר להציג את חלון המידע באופן פרוגרמטי על ידי קריאה ל-showInfoWindow() על הסמן.
אפשר גם ליצור חלונות מידע בהתאמה אישית דרך הממשק InfoWindowAdapter . |
סגנונות מותאמים אישית של מפה בסיסית | האם יש תמיכה? Partly
ה-SDK של מפות ל-Android תומך בעיצוב מותאם אישית של מפת הבסיס. במצב Lite יש תמיכה רק בעיצוב מותאם אישית מבוסס-JSON, ולא בעיצוב מבוסס-ענן שדורש מזהה מפה כדי להציג מפה מעוצבת.
בנוסף, במצב בסיסי אי אפשר להגדיר את ערכת הצבעים של המפה כך שתשתמש במצב כהה.
|
סמנים | האם יש תמיכה? Partly
אפשר להוסיף סמן ולהגיב לאירוע לחיצה. אפשר גם להוסיף סמלי סמנים מותאמים אישית. אי אפשר לגרור את הסמן. הסמנים במפה במצב בסיסי הם שטוחים ואי אפשר לסובב אותם. |
מיקום המצלמה, זום והנפשה | האם יש תמיכה? Partly
אפשר להגדיר את היעד והזום של המצלמה, אבל לא את ההטיה או את הכיוון.
רמת הזום מעוגלת למספר השלם הקרוב ביותר במצב בסיסי.
כשמחייגים למספר קריאה ל- |
מיפוי אירועים | האם יש תמיכה? Partly
במצב טעינה מהירה יש תמיכה ב- כדי להשבית אירועי קליקים במפה במצב בסיסי, אפשר להפעיל את הפונקציה פרטים נוספים זמינים במסמכי העזרה בנושא אירועים. |
מפות פנים ובניינים | האם יש תמיכה? לא
במצב טעינה מהירה יוצגו אותן משבצות כמו ב-Maps Static API.
כלומר, אם תוכנית הקומה הפנימית מוטמעת בכרטיס ברירת המחדל, היא תופיע. אחרת, הוא לא יופיע. בנוסף, אי אפשר לשנות את הרמה שמוצגת או לבצע פעולות על בורר רמות. |
שכבת התנועה | האם יש תמיכה? לא
אין תמיכה ב- GoogleMap.setTrafficEnabled() במצב טעינה מהירה. |
שכבות-על של קרקע | האם יש תמיכה? לא
אין תמיכה ב- GoogleMap.addGroundOverlay() במצב קל. |
שכבות-על של קטעי מפה | האם יש תמיכה? לא
אין תמיכה ב- GoogleMap.addTileOverlay() במצב קל. |
תנועות | האם יש תמיכה? לא
במצב טעינה מהירה אין תמיכה בתנועות. לא תהיה השפעה על הפעלה או השבתה של תנועות. |
Street View | האם יש תמיכה? לא
אין תמיכה בStreet View במצב טעינה מהירה. |