שכבות-על של קרקע

בחירת פלטפורמה: Android iOS JavaScript

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

מבוא

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

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

הוספת שכבת-על

  1. יוצרים אובייקט GMSGroundOverlay חדש
  2. מגדירים את המאפיין icon למופע של UIImage.
  3. מגדירים את המאפיין bounds למופע של GMSCoordinateBounds. הגבולות מייצגים את הפינות הדרום-מערבית והצפון-מזרחית של התמונה.
  4. מגדירים מאפיינים אופציונליים, כמו bearing ו-zoomLevel, לפי הצורך.
  5. מגדירים את המאפיין 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.