באמצעות 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; }