Gli overlay del suolo sono overlay sulla mappa legati alla latitudine/longitudine coordinate, in modo che si muovano quando trascini o esegui lo zoom sulla mappa.
Introduzione
Un overlay al suolo è un'immagine fissata a una mappa. Non mi piace indicatori, gli overlay del suolo sono orientati rispetto alla superficie terrestre piuttosto che sullo schermo, pertanto la rotazione, l'inclinazione o lo zoom della mappa cambieranno l'orientamento dell'immagine.
Per aggiungere un overlay al suolo, crea un oggetto GMSGroundOverlay
che definisca entrambi
un'icona e dei limiti. Se non specifichi nessuna di queste, l'overlay al suolo
non vengano visualizzati sulla mappa. Facoltativamente, puoi specificare impostazioni aggiuntive
influisce sul posizionamento dell'immagine sulla mappa. Dopo aver definito
opzioni necessarie, imposta la proprietà map
di questo oggetto per aggiungere l'overlay.
Aggiunta di un overlay
- Crea un'istanza per un nuovo oggetto
GMSGroundOverlay
- Imposta la proprietà
icon
su un'istanza diUIImage
. - Imposta la proprietà
bounds
su un'istanza diGMSCoordinateBounds
. La i confini rappresentano gli angoli sud-ovest e nord-est dell'immagine. - Imposta le proprietà facoltative, come
bearing
ezoomLevel
, come preferisci. - Imposta la proprietà
map
: l'immagine viene visualizzata sulla mappa.
L'esempio seguente mostra come aggiungere una sovrapposizione del suolo a una
GMSMapView
oggetto.
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;
Rimozione di un overlay
Puoi rimuovere un overlay al suolo dalla mappa impostando
proprietà map
di GMSGroundOverlay
a nil
. In alternativa, puoi rimuovere tutti gli overlay (inclusi gli overlay del suolo attualmente presenti sulla mappa) chiamando il metodo GMSMapView
clear
.
Swift
mapView.clear()
Objective-C
[mapView clear];
Se desideri apportare modifiche a un overlay del suolo dopo averlo aggiunto a
la mappa, assicurati di tenere premuto l'oggetto GMSGroundOverlay
. Puoi
modificherà l'overlay al suolo in un secondo momento apportando modifiche a questo oggetto.
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;
Eventi
Puoi ascoltare gli eventi che si verificano sulla mappa, ad esempio quando un utente tocca un
in overlay. Per rimanere in ascolto degli eventi, devi implementare il metodo
GMSMapViewDelegate
. Consulta le
guida agli eventi e l'elenco dei metodi disponibili sul
GMSMapViewDelegate