באמצעות ה-SDK של מפות ל-Android, אתם יכולים להתאים אישית את האופן שבו המשתמשים יכולים לבצע אינטראקציה עם המפה, על ידי קביעה אילו מרכיבי ממשק המשתמש המובנים יופיעו במפה ואילו תנועות מותרות.
דוגמאות קוד
המאגר ApiDemos ב-GitHub כולל דוגמה שממחישה את השימוש באפשרויות של פקדים ותנועות:
- UiSettingsDemoActivity: דוגמה ב-Kotlin
- UiSettingsDemoActivity: דוגמה ב-Java
מצב בסיסי לאינטראקציה מינימלית של המשתמשים
אם אתם רוצים מפה קלה עם אינטראקציה מינימלית של המשתמש, כדאי להשתמש במפה במצב בסיסי. במצב בסיסי מוצגת תמונת מפת סיביות (bitmap) של מפה במיקום וברמת זום מסוימים. במצב בסיסי, המשתמשים לא יכולים להזיז את המפה או לשנות את מרחק התצוגה, והתנועות לא פועלות. פרטים נוספים זמינים במדריך בנושא מצב בסיסי.
רכיבים אינטראקטיביים
ב-Maps API יש רכיבים אינטראקטיביים מובנים שדומים לאלה שבאפליקציית מפות Google בטלפון Android. אפשר להחליף את החשיפה של אמצעי הבקרה האלה באמצעות המחלקה UiSettings, שאפשר לקבל מ-GoogleMap באמצעות ה-method GoogleMap.getUiSettings. השינויים שבוצעו במחלקה הזו משתקפים מיד במפה. כדי לראות דוגמה לתכונות האלה, עיינו בפעילות ההדגמה של הגדרות ממשק המשתמש באפליקציה לדוגמה.
אפשר גם להגדיר את רוב האפשרויות האלה כשהמפה נוצרת באמצעות מאפייני XML או באמצעות הכיתה GoogleMapOptions. פרטים נוספים זמינים במאמר הגדרת המצב הראשוני.
לכל רכיב אינטראקטיבי יש מיקום שנקבע מראש ביחס לקצה המפה.
כדי להזיז את אמצעי הבקרה מהקצה העליון, התחתון, השמאלי או הימני, מוסיפים ריפוד לאובייקט GoogleMap.
כפתורי זום
ב-Maps API יש פקדי זום מובנים שמופיעים בפינה הימנית התחתונה של המפה. הן מושבתות כברירת מחדל, אבל אפשר להפעיל אותן באמצעות קריאה ל-UiSettings.setZoomControlsEnabled(true).
מצפן
ב-Maps API יש גרפיקה של מצפן שמופיעה בפינה השמאלית העליונה של המפה בנסיבות מסוימות. המצפן יופיע רק כשהמצלמה מכוונת כך שיש לה כיוון שאינו אפס או הטיה שאינה אפס. כשהמשתמש לוחץ על המצפן, המצלמה חוזרת למצב שבו הכיוון וההטיה הם אפס (כיוון ברירת המחדל), והמצפן נעלם זמן קצר לאחר מכן. כדי להסתיר את המצפן, אפשר להפעיל את הפונקציה UiSettings.setCompassEnabled(boolean).
עם זאת, אי אפשר להגדיר שהמצפן יוצג תמיד.
כפתור המיקום שלי
הכפתור "המיקום שלי" מופיע בפינה השמאלית העליונה של המסך רק כששכבת "המיקום שלי" מופעלת. פרטים נוספים זמינים במדריך בנושא נתוני מיקום.
תפריט בחירת רמה
כברירת מחדל, בורר קומות מופיע ליד הקצה הימני המרכזי של המסך כשהמשתמש צופה במפה פנימית. כששתי מפות פנימיות או יותר גלויות, בורר הקומות יחול על המבנה שנמצא כרגע במוקד, שהוא בדרך כלל המבנה הקרוב ביותר למרכז המסך. לכל בניין יש קומה שמוגדרת כברירת מחדל, והיא נבחרת כשכלי הבחירה מוצג בפעם הראשונה. המשתמשים יכולים לבחור רמה אחרת מתוך הרשימה.
אפשר להשבית או להפעיל את הפקד לבחירת קומה באמצעות קריאה ל-GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(boolean).
האפשרות הזו שימושית אם רוצים להחליף את בורר הרמות שמוגדר כברירת מחדל בבורר רמות משלכם.
סרגל הכלים של המפה
כברירת מחדל, סרגל כלים מופיע בפינה השמאלית התחתונה של המפה כשמשתמש מקיש על סמן. סרגל הכלים מאפשר למשתמשים גישה מהירה לאפליקציית מפות Google לנייד.
אפשר להפעיל ולהשבית את סרגל הכלים באמצעות קריאה ל-UiSettings.setMapToolbarEnabled(boolean).
במפה במצב בסיסי, סרגל הכלים נשאר ללא קשר לפעולות של המשתמש. במפה אינטראקטיבית מלאה, סרגל הכלים מופיע כשהמשתמש לוחץ על סמן, ונעלם כשהסמן כבר לא במוקד.
בסרגל הכלים מוצגים סמלים שמאפשרים גישה לתצוגת מפה או לבקשת מסלול באפליקציית מפות Google לנייד. כשמשתמש מקיש על סמל בסרגל הכלים, ה-API יוצר Intent כדי להפעיל את הפעילות המתאימה באפליקציית מפות Google לנייד.
סרגל הכלים מופיע בפינה השמאלית התחתונה של המפה בצילום המסך שלמעלה. אפס, אחד או שני סמלי ה-Intent יופיעו במפה, בהתאם לתוכן המפה ובתנאי שאפליקציית מפות Google לנייד תומכת ב-Intent שנוצר.
תנועות במפה
מפה שנוצרה באמצעות ה-SDK של מפות ל-Android תומכת באותן תנועות כמו אפליקציית מפות Google. עם זאת, יכול להיות שתרצו להשבית תנועות מסוימות כדי לשמור על מצב המפה. אפשר גם להגדיר את מרחק התצוגה, ההזזה, ההטיה והכיוון באופן פרוגרמטי – פרטים נוספים זמינים במאמר מצלמה ותצוגה. חשוב לזכור שהשבתת התנועות לא משפיעה על האפשרות לשנות את מיקום המצלמה באופן פרוגרמטי.
בדומה לרכיבים האינטראקטיביים, אפשר להפעיל או להשבית תנועות באמצעות המחלקה UiSettings, שאפשר לקבל מ-GoogleMap על ידי קריאה ל-GoogleMap.getUiSettings. שינויים שמבצעים במחלקה הזו משתקפים מיד במפה. כדי לראות דוגמה לתכונות האלה, אפשר לעיין בפעילות ההדגמה של הגדרות ממשק המשתמש באפליקציה לדוגמה (כאן מוסבר איך להתקין אותה).
אפשר גם להגדיר את האפשרויות האלה כשיוצרים את המפה באמצעות מאפייני XML או באמצעות המחלקה GoogleMapOptions.
פרטים נוספים זמינים במאמר הגדרת המפה.
תנועות לשינוי מרחק התצוגה
המפה מגיבה למגוון תנועות שיכולות לשנות את רמת הזום של המצלמה:
- כדי להגדיל את רמת הזום ב-1 (להתקרב), לוחצים לחיצה כפולה.
- הקשה בשתי אצבעות כדי להקטין את רמת הזום ב-1 (להקטין את התצוגה).
- צביטה/מתיחה בשתי אצבעות
- כדי לשנות את מרחק התצוגה באצבע אחת, לוחצים לחיצה כפולה בלי לשחרר את האצבע בלחיצה השנייה, ואז מחליקים את האצבע למעלה כדי להקטין את התצוגה או למטה כדי להגדיל אותה.
כדי להשבית את תנועות הזום, אפשר להפעיל את השיטה UiSettings.setZoomGesturesEnabled(boolean). ההגדרה הזו לא משפיעה על האפשרות של המשתמשים להשתמש בפקדי הזום כדי להגדיל ולהקטין את התצוגה.
תנועות גלילה (הזזה)
המשתמשים יכולים לגלול (להזיז) את המפה על ידי גרירה שלה עם האצבע.
כדי להשבית את הגלילה, אפשר להפעיל את הפונקציה
UiSettings.setScrollGesturesEnabled(boolean).
תנועות הטיה
כדי להטות את המפה, המשתמש יכול להניח שתי אצבעות על המפה ולהזיז אותן יחד למטה או למעלה כדי להגדיל או להקטין את זווית ההטיה, בהתאמה. כדי להשבית את תנועות ההטיה, אפשר להפעיל את UiSettings.setTiltGesturesEnabled(boolean).
תנועות סיבוב
המשתמשים יכולים לסובב את המפה על ידי הנחת שתי אצבעות על המפה וביצוע תנועת סיבוב. כדי להשבית את הרוטציה, אפשר להפעיל את UiSettings.setRotateGesturesEnabled(boolean).