Nakładki na powierzchnię

Wybierz platformę: Android iOS JavaScript

Nakładki na mapie są powiązane z koordynatami geograficznymi, dlatego poruszają się, gdy przeciągasz mapę lub ją przybliżasz.

Wprowadzenie

Nakładka naziemna to obraz przymocowany do mapy. W odróżnieniu od znaczników nakładki na mapę są zorientowane względem powierzchni Ziemi, a nie ekranu, więc obracanie, przechylanie lub powiększanie mapy powoduje zmianę orientacji obrazu.

Aby dodać nakładkę na ziemię, utwórz obiekt GMSGroundOverlay, który definiuje ikonę i granice. Jeśli nie określisz żadnego z tych parametrów, nakładka nie będzie widoczna na mapie. Opcjonalnie możesz określić dodatkowe ustawienia, które wpłyną 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. Utwórz nowy obiekt GMSGroundOverlay.
  2. Ustaw właściwość icon na instancję UIImage.
  3. Ustaw właściwość bounds na instancję GMSCoordinateBounds. Granice te odpowiadają narożnikom południowo-zachodniemu i północno-wschodniemu obrazu.
  4. W razie potrzeby ustaw opcjonalne właściwości, takie jak bearing i zoomLevel.
  5. Ustaw właściwość map – obraz pojawi się na mapie.

W tym przykładzie pokazujemy, 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ąć nakładkę naziemną z mapy, ustawiając w usługi GMSGroundOverlay właściwość map na nil. Możesz też usunąć wszystkie nakładki (w tym nakładki naziemne widoczne 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, pamiętaj, aby zachować obiekt GMSGroundOverlay. Możesz później zmodyfikować nakładkę na ziemię, 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 odbierać zdarzenia, 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 na stronie GMSMapViewDelegate.