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

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

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

פקדי המפה

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

מצפן

SDK של מפות ל-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;
}