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

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