מצב בסיסי

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

דוגמאות קוד

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

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

מפה במצב בסיסי היא תמונת מפת סיביות (bitmap) של מפה במיקום וברמת זום מסוימים. מצב בסיסי תומך בכל סוגי המפות (רגילה, היברידית, לוויין, פני שטח) ובקבוצת משנה של הפונקציונליות שמספק ה-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). לפרטים נוספים, ראו את המסמכים של סרגל הכלים.

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

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

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

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

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

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

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

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

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

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

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

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