Nakładki na powierzchni są warstwami mapy, które są powiązane ze współrzędnymi szerokości i długości geograficznej, więc można je przesuwać przy powiększaniu lub pomniejszaniu mapy.
Wprowadzenie
Nakładka na poziomie terenu to obraz na stałe osadzony na mapie. W przeciwieństwie do znaczników nakładki na powierzchni ziemi są kierowane na powierzchnię Ziemi, a nie na ekran, dlatego obrót, przechylenie lub powiększenie mapy spowoduje zmianę orientacji obrazu.
Aby dodać nakładkę na powierzchnię, utwórz obiekt GMSGroundOverlay
definiujący zarówno ikonę, jak i granice. Jeśli nie określisz żadnego z tych elementów, na powierzchnia nie pojawi się na mapie. Opcjonalnie możesz określić dodatkowe ustawienia wpływające na położenie zdjęcia na mapie. Po zdefiniowaniu niezbędnych opcji ustaw właściwość map
tego obiektu, by dodać nakładkę.
Dodawanie nakładki
- Utwórz instancję nowego obiektu
GMSGroundOverlay
- Ustaw właściwość
icon
na instancjęUIImage
. - Ustaw właściwość
bounds
na instancjęGMSCoordinateBounds
. Granice są ustawione na południowy zachód i na północny wschód rogu. - W razie potrzeby ustaw właściwości opcjonalne, takie jak
bearing
izoomLevel
. - Ustaw właściwość
map
– zdjęcie pojawi się na mapie.
Poniższy przykład pokazuje, jak dodać nakładkę naziemną 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ę z ziemią z mapy, ustawiając we właściwości map
w usłudze GMSGroundOverlay
wartość nil
. Możesz też usunąć wszystkie nakładki (w tym te na powierzchni ziemi, które są obecnie na mapie), wywołując metodę GMSMapView
clear
.
Swift
mapView.clear()
Objective-C
[mapView clear];
Jeśli chcesz zmienić nakładkę na powierzchni po dodaniu jej do mapy, pamiętaj, aby trzymać obiekt GMSGroundOverlay
. Później możesz wprowadzić zmiany w nakładce 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;
Zdarzenia
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
. Zobacz przewodnik po zdarzeniach i listę metod na GMSMapViewDelegate
.