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

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

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

כלים לעריכת המפה

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