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
- Utwórz nowy obiekt
GMSGroundOverlay
- Ustaw właściwość
icon
na instancjęUIImage
. - Ustaw właściwość
bounds
na instancjęGMSCoordinateBounds
. Granice oznaczają południowy zachód i północno-wschodnie rogi obrazu. - Ustaw właściwości opcjonalne, takie jak
bearing
izoomLevel
. - 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
.