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

בחירת פלטפורמה: 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;
}