שכבות-על של קרקע הן שכבות-על במפה שקשורות לקו רוחב/אורך את הקואורדינטות, כך שהן יזוזו כאשר תגרור את המפה או תשנה את מרחק התצוגה שלה.
מבוא
שכבת-על של קרקע היא תמונה שקבועה במפה. ביטול הלייק סמנים, שכבות-על של קרקע ממוקמות על פני השטח של כדור הארץ כך שסיבוב, הטיה או שינוי מרחק התצוגה של המפה ישתנו את כיוון התמונה.
כדי להוסיף שכבת-על של קרקע, צריך ליצור אובייקט GMSGroundOverlay
שמגדיר את שני הערכים
סמל וגבול. אם לא מציינים אף אחד מהם, הדבר יגרום לשכבת-העל של הקרקע
שלא יופיעו במפה. אפשר לציין הגדרות נוספות
ישפיעו על מיקום התמונה במפה. אחרי שמגדירים את
האפשרויות הנדרשות, מגדירים את המאפיין map
של האובייקט הזה כדי להוסיף את שכבת-העל.
הוספת שכבת-על
- יצירת אובייקט
GMSGroundOverlay
חדש - מגדירים את המאפיין
icon
למופע שלUIImage
. - מגדירים את המאפיין
bounds
למופע שלGMSCoordinateBounds
. הגבולות מייצגים את הפינות הדרום-מערביות והפינות הצפון מזרחיות של התמונה. - מגדירים מאפיינים אופציונליים, כמו
bearing
ו-zoomLevel
, לפי הצורך. - מגדירים את המאפיין
map
– התמונה מופיעה במפה.
הדוגמה הבאה ממחישה איך להוסיף שכבת-על של קרקע לתוכן קיים
אובייקט GMSMapView
.
Swift
let southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655) let northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544) let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast) // Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg let icon = UIImage(named: "newark_nj_1922") let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon) overlay.bearing = 0 overlay.map = mapView
Objective-C
CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655); CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544); GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest coordinate:northEast]; // Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg UIImage *icon = [UIImage imageNamed:@"newark_nj_1922"]; GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon]; overlay.bearing = 0; overlay.map = mapView;
הסרת שכבת-על
ניתן להסיר שכבת-על של קרקע מהמפה על ידי הגדרת
נכס map
של GMSGroundOverlay
אל nil
. לחלופין, אפשר להסיר את כל
של שכבות-העל (כולל שכבות-על של קרקע שנמצאות כרגע במפה על ידי קריאה
אמצעי תשלום אחד (GMSMapView
) clear
.
Swift
mapView.clear()
Objective-C
[mapView clear];
אם רוצים לבצע שינויים בשכבת-על של קרקע אחרי שמוסיפים אותה אל
במפה, צריך להקפיד להחזיק את האובייקט GMSGroundOverlay
. אפשר
לשנות את שכבת-העל של הקרקע מאוחר יותר על ידי ביצוע שינויים באובייקט הזה.
Swift
let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon) overlay.bearing = 0 overlay.map = mapView // ... overlay.isTappable = true
Objective-C
GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon]; overlay.bearing = 0; overlay.map = mapView; // ... overlay.tappable = YES;
אירועים
אתם יכולים להאזין לאירועים שמתרחשים במפה, למשל כשמשתמש מקיש על
בשכבת-על. כדי להאזין לאירועים, עליכם להטמיע את
GMSMapViewDelegate
. לצפייה
במדריך לאירועים ואת רשימת השיטות
GMSMapViewDelegate
.