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

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