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

בחירת פלטפורמה: 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 options = GMSMapViewOptions()
options.camera = camera
let mapView = GMSMapView(options: options)
mapView.settings.compassButton = true
      

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.757815
                                                        longitude:-122.50764
                                                             zoom:12];
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = camera;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
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 options = GMSMapViewOptions()
  options.camera = camera
  let mapView = GMSMapView(options: options)
  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];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = camera;
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  mapView.settings.scrollGestures = NO;
  mapView.settings.zoomGestures = NO;
  self.view = mapView;
}