מצב בסיסי

ה-SDK של מפות Google ל-Android יכול להציג תמונה של מפת סיביות (bitmap) של מפה, כך שהמשתמש יוכל לבצע פעולות אינטראקטיביות מוגבלות. המפה הזו נקראת מצב קל.

דוגמאות קוד

מאגר ApiDemos ב-GitHub כולל דוגמאות שמדגימות את השימוש במצב Lite:

סקירה כללית של מצב Lite

מפה במצב Lite היא תמונת מפת סיביות של מפה במיקום מסוים וברמת המרחק מהתצוגה. במצב Lite יש תמיכה בכל סוגי המפות (רגיל, היברידי, לוויין, פני שטח) ובקבוצת משנה של הפונקציונליות שה-API המלא מספק. מצב Lite שימושי כשרוצים להציג מספר מפות ברצף, או מפה קטנה מדי מכדי לתמוך באינטראקציה משמעותית.

משתמשים שמציגים את המפה לא יכולים לשנות את מרחק התצוגה או להזיז את המפה. סמלים במפה מאפשרים למשתמשים לגשת למפה באפליקציית מפות Google לנייד ולבקש מסלול הגעה.

הוספת מפה במצב Lite

במצב Lite נעשה שימוש באותם סיווגים וממשקים כמו הגרסה המלאה של Google Maps Android API ל-Android. אפשר להגדיר את GoogleMap למצב Lite בדרכים הבאות:

  • כמאפיין 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);

      

לקבלת פרטים על הגדרת המצב הראשוני של המפה, אפשר לעיין במדריך לאובייקט המפה.

Intent להפעלת תצוגת מפה או בקשה לקבלת מסלול

כברירת מחדל, בסרגל הכלים בפינה השמאלית התחתונה של המפה מופיעים סמלים שמאפשרים גישה לתצוגת מפה או לבקשת מסלול באפליקציית מפות Google לנייד. אפשר להשבית את סרגל הכלים באמצעות קריאה ל-UiSettings.setMapToolbarEnabled(false). פרטים נוספים זמינים במסמכי התיעוד של סרגל הכלים.

בנוסף, כברירת מחדל כשמשתמש מקיש על המפה, ה-API מפעיל את אפליקציית מפות Google לנייד. אפשר לשנות זאת על ידי הגדרת האזנה משלכם ב-GoogleMap.setOnMapClickListener(). אפשר גם להשבית אירועי קליק במפה על ידי קריאה ל-setClickable() בתצוגה שמכילה את MapView או MapFragment. לפרטים על שתי הטכניקות האלה, עיינו במאמרי העזרה בנושא אירועים.

אירועים בנושא מחזור החיים

כשמשתמשים ב-API במצב אינטראקטיבי מלא, המשתמשים במחלקה MapView צריכים להעביר את כל השיטות של מחזור החיים של הפעילות ל-methods המתאימות במחלקה MapView. דוגמאות ל-methods של מחזור החיים: onCreate(), onDestroy(), onResume() ו-onPause().

כשמשתמשים במחלקה MapView במצב Lite, אירועים במחזור החיים של ההעברה הם אופציונליים, חוץ מאשר במצבים הבאים:

  • חובה להתקשר אל onCreate(), אחרת לא תוצג מפה.
  • אם תרצה להציג את הנקודה 'המיקום שלי' במפה במצב ה-Lite ולהשתמש במקור המיקום המוגדר כברירת מחדל, יהיה עליך להפעיל את 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 של shapes תואמת ל-API המלא.
היטל
יש תמיכה? כן
הפונקציונליות במצב Lite של Projection תואמת ל-API המלא.
המיקום שלי
יש תמיכה? כן
הפונקציונליות במצב Lite של שכבת המיקום שלי תואמת ל-API המלא.
מרווח פנימי במפה
יש תמיכה? כן
התמיכה במצב Lite במרווח פנימי במפה תואמת ל-API המלא.
חלונות מידע
יש תמיכה? כן
אם מגדירים את title() של סמן, חלון המידע שמוגדר כברירת מחדל יופיע כשהמשתמש יקיש על הסמן. ניתן להציג את חלון המידע באופן פרוגרמטי על ידי קריאה ל-showInfoWindow() בסמן. אפשר גם ליצור חלונות מידע מותאמים אישית דרך הממשק של InfoWindowAdapter.
סגנונות של מפה בסיסית בהתאמה אישית
יש תמיכה? באופן חלקי
ה-SDK של מפות Google ל-Android תומך בעיצוב בהתאמה אישית של המפה הבסיסית. מצב Lite תומך רק בסגנון מותאם אישית מבוסס-JSON, לא בסגנון מבוסס ענן המחייב מזהה מפה כדי לעבד מפה מעוצבת.
סמנים
יש תמיכה? באופן חלקי
אפשר להוסיף סמן ולהגיב לאירוע של קליק. אפשר גם להוסיף סמלי סמנים מותאמים אישית. לא ניתן להפוך סמן לניתן לגרירה. הסמנים במפה במצב Lite הם שטוחים, ולא ניתן לסובב אותם.
מיקום המצלמה, זום ואנימציה
יש תמיכה? באופן חלקי

אפשר להגדיר את יעד המצלמה ואת הזום, אבל לא את ההטיה או את ההטיה. רמת הזום מעוגלת למספר השלם הקרוב ביותר במצב Lite. אם תחייגו אל GoogleMap.moveCamera(), תקבלו תמונה נוספת של המפה במצב Lite. למידע נוסף על הגדרת המצלמה וביצוע מניפולציות עליה, ראו שינוי התצוגה.

קריאה אל GoogleMap.animateCamera() לא תגרום לאנימציה של תנועת המצלמה. תצוגת המצלמה תזוז מיד למיקום החדש.

מיפוי אירועים
יש תמיכה? באופן חלקי

מצב Lite תומך ב-GoogleMap.setOnMapClickListener() וב-GoogleMap.setOnMapLongClickListener().

כדי להשבית אירועי לחיצה במפה במצב Lite, אפשר להפעיל את setClickable() בתצוגה שמכילה את MapView או MapFragment. האפשרות הזו שימושית, למשל, כשמציגים מפה או מפות בתצוגת רשימה, שבהן רוצים שאירוע הקליק יגרום לפעולה שלא קשורה למפה.

למידע נוסף, עיינו במשאבי העזרה בנושא אירועים.

מפות פנים ובניינים
יש תמיכה? לא
במצב Lite יוצגו אותן משבצות כמו ה-API הסטטי של מפות Google. המשמעות היא שאם תוכנית הקומה הפנימית משולבת במשבצת ברירת המחדל, היא תופיע. אחרת, היא לא תהיה זמינה. בנוסף, אי אפשר לשנות את הרמה שמוצגת או לערוך שינויים בבורר הרמות.
שכבת התנועה
יש תמיכה? לא
אין תמיכה ב-GoogleMap.setTrafficEnabled() במצב Lite.
שכבות-על של קרקע
יש תמיכה? לא
אין תמיכה ב-GoogleMap.addGroundOverlay() במצב Lite.
שכבות-על של משבצות
יש תמיכה? לא
אין תמיכה ב-GoogleMap.addTileOverlay() במצב Lite.
תנועות
יש תמיכה? לא
מצב Lite לא תומך בתנועות. להפעלה ולהשבתה של תנועות לא תהיה השפעה.
תמונת Street View
יש תמיכה? לא
אין תמיכה ב-Street View במצב Lite.