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

בחירת פלטפורמה: 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. אפשר גם להסיר את כל שכבות העל (כולל שכבות על של הקרקע שמוצגות כרגע במפה) באמצעות הקריאה לשיטה 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.