Nakładki na powierzchnię

Wybierz platformę: Android iOS JavaScript

Nakładki na powierzchni to warstwy na mapie powiązane z szerokością i długością geograficzną. współrzędnych, dzięki czemu poruszają się one podczas przeciągania lub powiększania mapy.

Wprowadzenie

Nakładka na powierzchni to obraz na stałe umieszczony na mapie. Nie podoba mi się znaczniki, warstwy nad powierzchnią są zorientowane względem powierzchni Ziemi. a nie na ekranie, więc obracanie, przechylanie i powiększanie mapy zmienia się od orientacji obrazu.

Aby dodać obraz nad powierzchnią, utwórz obiekt GMSGroundOverlay, który definiuje zarówno ikonę i granicę. Jeśli nie określisz żadnej z tych opcji, spowoduje to nałożenie obrazu na powierzchnię tak aby nie były wyświetlane na mapie. Opcjonalnie możesz określić dodatkowe ustawienia, które wpłynie na pozycję zdjęcia na mapie. Po zdefiniowaniu parametru 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 GMSMapView obiekt.

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 nakładkę na ziemi, ustawiając właściwość typu map użytkownika GMSGroundOverlay 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];
      

Aby zmodyfikować nakładkę na ziemi po dodaniu jej do mapę, pamiętaj o utrzymaniu obiektu GMSGroundOverlay. Dostępne opcje można później zmodyfikować nakładkę na powierzchnię 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 nasłuchiwać zdarzeń występujących na mapie, np. kliknięcia przez użytkownika przycisku nakładkę. Aby nasłuchiwać zdarzeń, musisz zaimplementować funkcję Protokół GMSMapViewDelegate. Zobacz przewodnik po zdarzeniach i listę metod w witrynie GMSMapViewDelegate.