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