Nakładki na powierzchnię

Wybierz platformę: Android iOS JavaScript

Nakładki na ziemi to nakładki na mapę powiązane ze współrzędnymi szerokości i długości geograficznej, więc przesuwają się podczas przeciągania lub powiększania mapy.

Wstęp

Nakładka na powierzchni to obraz na stałe umieszczony na mapie. W przeciwieństwie do znaczników nakładki na ziemi są zorientowane na powierzchnię Ziemi, a nie na ekranie, więc obracanie, przechylanie lub powiększanie mapy zmienia jej orientację.

Aby dodać nakładkę z powierzchnią, utwórz obiekt GMSGroundOverlay, który definiuje zarówno ikonę, jak i granicę. W przeciwnym razie nakładka 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 nowy obiekt GMSGroundOverlay
  2. Ustaw właściwość icon na instancję UIImage.
  3. Ustaw właściwość bounds na instancję GMSCoordinateBounds. Granice oznaczają południowy zachód i północno-wschodnie rogi obrazu.
  4. 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ę na powierzchnię 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ę ziemi, ustawiając właściwość map usługi GMSGroundOverlay na nil. Możesz też usunąć wszystkie nakładki (w tym te widoczne aktualnie na mapie), wywołując metodę GMSMapView clear.

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

Jeśli chcesz zmodyfikować nakładkę na powierzchnię po dodaniu jej do mapy, upewnij się, że zachowasz 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. kliknięcia nakładki przez użytkownika. Aby nasłuchiwać zdarzeń, musisz wdrożyć protokół GMSMapViewDelegate. Zapoznaj się z przewodnikiem po zdarzeniach i listą metod w zadaniu GMSMapViewDelegate.