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

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