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
- 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
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
.