פקדים ותנועות

בחירת פלטפורמה: Android iOS JavaScript

באמצעות ה-SDK של מפות Google ל-iOS, אפשר להתאים אישית את האינטראקציה של המשתמשים עם המפה. לשם כך, צריך לקבוע אילו מרכיבי ממשק המשתמש המובנים יופיעו במפה ואילו תנועות מותרות.

פקדי המפה

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

מצפן

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

המצפן מושבת כברירת מחדל. ניתן להפעיל את המצפן על ידי הגדרה של נכס compassButton של GMSUISettings עד YES. אבל אי אפשר לאלץ את המצפן להיות מוצג תמיד.

Swift

let camera = GMSCameraPosition(latitude: 37.757815, longitude: -122.50764, zoom: 12)
let mapView = GMSMapView(frame: .zero, camera: camera)
mapView.settings.compassButton = true
      

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.757815
                                                        longitude:-122.50764
                                                             zoom:12];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView.settings.compassButton = YES;
      

לחצן 'המיקום שלי'

הלחצן 'המיקום שלי' מופיע בפינה השמאלית התחתונה של המסך בלבד כאשר הלחצן 'המיקום שלי' מופעל. כשמשתמש לוחץ על הלחצן, המצלמה מבצעת אנימציה כדי להתמקד במיקום הנוכחי של המשתמש, אם המיקום שלו ידוע כרגע. אפשר להפעיל את הלחצן על ידי הגדרת נכס myLocationButton של GMSUISettings עד YES.

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

בוחר הקומה

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

אפשר להשבית את אמצעי הבקרה של בוחר הקומות על ידי הגדרת המאפיין indoorPicker של GMSUISettings עד NO.

Swift

mapView.settings.indoorPicker = false
      

Objective-C

mapView.settings.indoorPicker = NO;
      

תנועות במפה

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

  • scrollGestures — קובע אם תנועות הגלילה מופעלות או מושבתות. אם המדיניות מופעלת, המשתמשים יכולים להחליק כדי להזיז את המצלמה.
  • zoomGestures — קובע אם תנועות זום מופעלות או מושבת. אם ההגדרה מופעלת, המשתמשים יכולים להקיש הקשה כפולה, להקיש בשתי אצבעות או לעשות תנועת צביטה כדי שינוי מרחק התצוגה במצלמה. חשוב לשים לב שהקשה כפולה או תנועת צביטה כאשר scrollGestures יכולים להזיז את המצלמה לנקודה שצוינה.
  • tiltGestures - קובע אם תנועות הטיה יופעלו או מושבת. אם ההגדרה מופעלת, המשתמשים יכולים להחליק כלפי מטה או כלפי מעלה עם שתי אצבעות כדי להטות את המצלמה.
  • rotateGestures — קובע אם תנועות סיבוב מופעלות או מושבת. אם ההגדרה מופעלת, המשתמשים יכולים לבצע תנועת סיבוב בעזרת שתי אצבעות כדי מסובבים את המצלמה.

בדוגמה הבאה, התנועות להזזה ולזום הושבתו.

Swift

override func loadView() {
  let camera = GMSCameraPosition.camera(
    withLatitude: 1.285,
    longitude: 103.848,
    zoom: 12
  )

  let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
  mapView.settings.scrollGestures = false
  mapView.settings.zoomGestures = false
  self.view = mapView
}
      

Objective-C

- (void)loadView {
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                          longitude:103.848
                                                               zoom:12];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  mapView.settings.scrollGestures = NO;
  mapView.settings.zoomGestures = NO;
  self.view = mapView;
}