Warstwy na powierzchni to warstwy na mapie, które są powiązane ze współrzędnymi szerokości i długości geograficznej. Poruszają się one, gdy przeciągasz lub powiększasz mapę.
Wstęp
Nakładka na teren to zdjęcie, które jest na stałe umieszczone na mapie. W przeciwieństwie do znaczników warstwy nad powierzchnią są zorientowane względem powierzchni Ziemi, a nie do ekranu, dlatego obracanie, pochylanie lub powiększanie mapy zmienia orientację.
Aby dodać warstwę terenu, utwórz obiekt GMSGroundOverlay
, który określa zarówno ikonę, jak i granice. Jeśli nie podasz żadnej z tych wartości, nakładka na powierzchni 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
- Utwórz instancję nowego obiektu
GMSGroundOverlay
- Ustaw właściwość
icon
na wystąpienie elementuUIImage
. - Ustaw właściwość
bounds
na wystąpienie elementuGMSCoordinateBounds
. Granice odpowiadają południowo-zachodnim i północno-wschodnim narożnikom obrazu. - Ustaw w razie potrzeby właściwości opcjonalne, takie jak
bearing
izoomLevel
. - Ustaw właściwość
map
– obraz pojawi się na mapie.
Przykład poniżej pokazuje, 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ąć z mapy warstwę naziemną, ustawiając właściwość map
obiektu GMSGroundOverlay
na wartość nil
. Możesz też usunąć wszystkie nakładki (w tym te, które obecnie znajdują się na mapie), wywołując metodę GMSMapView
clear
.
Swift
mapView.clear()
Objective-C
[mapView clear];
Jeśli po dodaniu do mapy obrazu na powierzchni ziemi chcesz wprowadzić w nim zmiany, upewnij się, że znajduje się na nim 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. gdy użytkownik kliknie nakładkę. Aby nasłuchiwać zdarzeń, musisz wdrożyć protokół GMSMapViewDelegate
. Zapoznaj się z przewodnikiem po zdarzeniach i listą metod w GMSMapViewDelegate
.