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

בחירת פלטפורמה: 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.