מצב בסיסי

‫Maps SDK ל-Android יכול להציג תמונת מפה בפורמט ביטמאפ, עם אינטראקטיביות מוגבלת למשתמש. מפה כזו נקראת מפה במצב בסיסי.

דוגמאות קוד

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

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

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

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

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

מצב טעינה מהירה משתמש באותן מחלקות וממשקים כמו Google Maps Android API המלא. אפשר להגדיר 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). לפרטים נוספים, ראו את המסמכים של סרגל הכלים.

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

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

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

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

  • חובה להפעיל את onCreate(), אחרת לא תופיע מפה.
  • אם רוצים להציג את הנקודה "המיקום שלי" במפה במצב בסיסי ולהשתמש במקור המיקום שמוגדר כברירת מחדל, צריך להפעיל את onResume() ו-onPause(), כי מקור המיקום יתעדכן רק בין ההפעלות האלה. אם אתם משתמשים במקור מיקום משלכם, אין צורך להפעיל את שתי השיטות האלה.

תכונות נתמכות של ה-API

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

פונקציונליות
סוגי מפות
יש תמיכה? כן
סוגי המיפוי הבאים זמינים דרך GoogleMapOptions.mapType() ו-GoogleMap.setMapType(): MAP_TYPE_NORMAL,‏ MAP_TYPE_SATELLITE, ‏ MAP_TYPE_TERRAIN,‏ MAP_TYPE_HYBRID, ‏ MAP_TYPE_NONE
קווים פוליגוניים, פוליגונים, עיגולים
יש תמיכה? כן
הפונקציונליות של המצב הבסיסי לצורות תואמת ל-API המלא.
היטל
יש תמיכה? כן
הפונקציונליות של מצב טעינה מהירה ב-Projection זהה לזו של ה-API המלא.
המיקום שלי
יש תמיכה? כן
הפונקציונליות של מצב Lite בשכבת המיקום שלי זהה לזו של ה-API המלא.
שוליים של המפה
יש תמיכה? כן
התמיכה בשוליים של המפה במצב טעינה מהירה זהה לתמיכה ב-API המלא.
חלונות מידע
יש תמיכה? כן
אם מגדירים את title() של סמן, חלון המידע שמוגדר כברירת מחדל יופיע כשמשתמש יקיש על הסמן. אפשר להציג את חלון המידע באופן פרוגרמטי על ידי קריאה ל-showInfoWindow() בסמן. אפשר גם ליצור חלונות מידע בהתאמה אישית דרך הממשק של InfoWindowAdapter.
סגנונות מותאמים אישית של מפת הבסיס
יש תמיכה? חלקית
‫SDK של מפות ל-Android תומך בסגנון אישי של מפת הבסיס. במצב Lite יש תמיכה רק בעיצוב מותאם אישית מבוסס-JSON, ולא בעיצוב מבוסס-ענן שדורש מזהה מפה כדי לעבד מפה מעוצבת. במצב טעינה מהירה אי אפשר גם להגדיר את ערכת הצבעים של המפה לשימוש במצב כהה.
סמנים
יש תמיכה? באופן חלקי
אפשר להוסיף סמן ולהגיב לאירוע מסוג קליק. אפשר גם להוסיף סמלים של סמנים בהתאמה אישית. אי אפשר להפוך סמן לניתן לגרירה. הסמנים במפה במצב Lite הם שטוחים, ואי אפשר לסובב אותם.
מיקום המצלמה, זום ואנימציה
יש תמיכה? באופן חלקי

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

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

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

במצב בסיסי יש תמיכה ב-GoogleMap.setOnMapClickListener() וב-GoogleMap.setOnMapLongClickListener().

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

פרטים נוספים מופיעים במסמכי התיעוד בנושא אירועים.

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