Nakładki na powierzchnię

Wybierz platformę: Android iOS JavaScript

Warstwy na powierzchni to warstwy na mapie, które są powiązane ze współrzędnymi szerokości i długości geograficznej. Poruszają się one, gdy przeciągasz lub powiększasz mapę.

Wstęp

Nakładka na teren to zdjęcie, które jest na stałe umieszczone na mapie. W przeciwieństwie do znaczników warstwy nad powierzchnią są zorientowane względem powierzchni Ziemi, a nie do ekranu, dlatego obracanie, pochylanie lub powiększanie mapy zmienia orientację.

Aby dodać warstwę terenu, utwórz obiekt GMSGroundOverlay, który określa zarówno ikonę, jak i granice. Jeśli nie podasz żadnej z tych wartości, nakładka na powierzchni nie będzie się wyświetlać na mapie. Opcjonalnie możesz określić dodatkowe ustawienia, które wpłyną na pozycję obrazu na mapie. Po zdefiniowaniu niezbędnych opcji ustaw właściwość map tego obiektu, aby dodać nakładkę.

Dodawanie nakładki

  1. Utwórz instancję nowego obiektu GMSGroundOverlay
  2. Ustaw właściwość icon na wystąpienie elementu UIImage.
  3. Ustaw właściwość bounds na wystąpienie elementu GMSCoordinateBounds. Granice odpowiadają południowo-zachodnim i północno-wschodnim narożnikom obrazu.
  4. Ustaw w razie potrzeby właściwości opcjonalne, takie jak bearing i zoomLevel.
  5. Ustaw właściwość map – obraz pojawi się na mapie.

Przykład poniżej pokazuje, jak dodać nakładkę na ziemi do istniejącego obiektu 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;
      

Usuwanie nakładki

Możesz usunąć z mapy warstwę naziemną, ustawiając właściwość map obiektu GMSGroundOverlay na wartość nil. Możesz też usunąć wszystkie nakładki (w tym te, które obecnie znajdują się na mapie), wywołując metodę GMSMapView clear.

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

Jeśli po dodaniu do mapy obrazu na powierzchni ziemi chcesz wprowadzić w nim zmiany, upewnij się, że znajduje się na nim obiekt GMSGroundOverlay. Nakładka na powierzchnię ziemi można później zmodyfikować, wprowadzając zmiany w tym obiekcie.

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;
      

Wydarzenia

Możesz nasłuchiwać zdarzeń występujących na mapie, np. gdy użytkownik kliknie nakładkę. Aby nasłuchiwać zdarzeń, musisz wdrożyć protokół GMSMapViewDelegate. Zapoznaj się z przewodnikiem po zdarzeniach i listą metod w GMSMapViewDelegate.