Nakładki na powierzchnię

Wybierz platformę: Android iOS JavaScript

Nakładki na grunt to nakładki na mapie, które są powiązane ze współrzędnymi szerokości i długości geograficznej, więc poruszają się, gdy przeciągasz lub powiększasz mapę.

Wprowadzenie

Nakładka na mapę to obraz, który jest na stałe umieszczony na mapie. W przeciwieństwie do znaczników nakładki naziemne są zorientowane względem powierzchni Ziemi, a nie ekranu, więc obracanie, przechylanie lub powiększanie mapy zmienia orientację obrazu.

Aby dodać nakładkę naziemną, utwórz obiekt GMSGroundOverlay, który definiuje zarówno ikonę, jak i granice. Jeśli nie określisz żadnego z tych elementów, nakładka nie pojawi się na mapie. Możesz też określić dodatkowe ustawienia, które będą miały wpływ na pozycjonowanie obrazu na mapie. Po zdefiniowaniu niezbędnych opcji ustaw właściwość map tego obiektu, aby dodać nakładkę.

Dodawanie nakładki

  1. Utworzenie nowego obiektu GMSGroundOverlay
  2. Ustaw właściwość icon na instancję UIImage.
  3. Ustaw właściwość bounds na instancję GMSCoordinateBounds. Granice reprezentują południowo-zachodni i północno-wschodni róg obrazu.
  4. W razie potrzeby ustaw właściwości opcjonalne, takie jak bearing i zoomLevel.
  5. Ustaw właściwość map – obraz pojawi się na mapie.

Poniższy przykład pokazuje, jak dodać nakładkę naziemną 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ąć nakładkę naziemną z mapy, ustawiając właściwość map obiektu GMSGroundOverlay na nil. Możesz też usunąć wszystkie nakładki (w tym nakładki na mapę) obecnie wyświetlane na mapie, wywołując metodę GMSMapView clear.

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

Jeśli chcesz wprowadzić zmiany w nakładce naziemnej po dodaniu jej do mapy, zachowaj obiekt GMSGroundOverlay. Możesz później zmodyfikować nakładkę, 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ń, które występują na mapie, np. gdy użytkownik kliknie nakładkę. Aby nasłuchiwać zdarzeń, musisz zaimplementować protokół GMSMapViewDelegate. Zapoznaj się z przewodnikiem po zdarzeniach i listą metod w GMSMapViewDelegate.