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

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

באמצעות ה-SDK של מפות Google ל-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;
}