שכבות-על של פני השטח הן שכבות-על במפה שקשורות לקואורדינטות של קווי רוחב/אורך, כך שהן זזות כשגוררים את המפה או משנים את מרחק התצוגה שלה.

מבוא
שכבת-על של פני השטח היא תמונה שמוצמדת למפה. בניגוד לסמנים, שכבות-על של פני השטח מיושרות לפי פני כדור הארץ ולא לפי המסך, כך שסיבוב, הטיה או שינוי מרחק התצוגה של המפה ישנו את הכיוון של התמונה.
כדי להוסיף שכבת-על של פני השטח, יוצרים אובייקט 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. לחלופין, אפשר להסיר את כל שכבות העל (כולל שכבות על של פני השטח) שמופיעות כרגע במפה באמצעות קריאה ל-method 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.