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

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

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

פקדי המפה

‏Maps SDK ל-iOS מספק כמה אמצעי בקרה מובנים בממשק המשתמש, שדומים לאלה שנמצאים באפליקציית מפות Google ל-iOS. אפשר להחליף את הסטטוס של הרכיבים האלה באמצעות הכיתה GMSUISettings. שינויים שמתבצעים בקטגוריה הזו משתקפים במפה באופן מיידי.

מצפן

ב-Maps 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;
}