Nakładki naziemne to nakładki na mapę, które są powiązane ze współrzędnymi geograficznymi, więc przesuwają się, gdy przeciągasz lub powiększasz mapę.

Wprowadzenie
Nakładka na mapę to obraz przypięty do mapy. W przeciwieństwie do znacznikównakładki na mapę są zorientowane względem powierzchni Ziemi a nie ekranu, więc obracanie, przechylanie lub powiększanie mapy spowoduje zmianę orientacji obrazu.
Aby dodać nakładkę na mapę, 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 na mapę nie pojawi się na mapie. Opcjonalnie możesz określić dodatkowe ustawienia, które wpłyną na położenie obrazu na mapie.
Gdy zdefiniujesz niezbędne opcje, ustaw właściwość map tego obiektu, aby dodać nakładkę.
Dodawanie nakładki
- Utwórz instancję nowego obiektu
GMSGroundOverlay. - Ustaw właściwość
iconna instancjęUIImage. - Ustaw właściwość
boundsna instancjęGMSCoordinateBounds. Granice reprezentują południowo-zachodni i północno-wschodni róg obrazu. - W razie potrzeby ustaw opcjonalne właściwości, takie jak
bearingizoomLevel. - Ustaw właściwość
map– obraz pojawi się na mapie.
Poniższy przykład pokazuje, jak dodać nakładkę na mapę 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
Aby usunąć nakładkę na mapę, ustaw właściwość map obiektu GMSGroundOverlay na nil. Możesz też usunąć wszystkie nakładki (w tym nakładki na mapę) znajdujące się obecnie na mapie, wywołując metodę clear obiektu GMSMapView.
Swift
mapView.clear()
Objective-C
[mapView clear];
Jeśli chcesz wprowadzić zmiany w nakładce na mapę po dodaniu jej do mapy, zachowaj obiekt GMSGroundOverlay. Możesz później zmodyfikować nakładkę na mapę, 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.