Overlay al suolo

Seleziona la piattaforma: Android iOS JavaScript

Gli overlay al suolo sono overlay sulla mappa legati a coordinate di latitudine/longitudine, quindi si spostano quando trascini o esegui lo zoom sulla mappa.

Introduzione

Un overlay del suolo è un'immagine fissa su una mappa. A differenza degli indicatori, gli overlay al suolo sono orientati verso la superficie terrestre anziché lo schermo, pertanto ruotando, inclinando o aumentando lo zoom la mappa cambierà l'orientamento dell'immagine.

Per aggiungere un overlay del suolo, crea un oggetto GMSGroundOverlay che definisca sia un'icona sia un limite. Se non specifichi una di queste opzioni, l'overlay del suolo non verrà visualizzato sulla mappa. Facoltativamente, puoi specificare impostazioni aggiuntive che influiranno sul posizionamento dell'immagine sulla mappa. Una volta definite le opzioni necessarie, imposta la proprietà map di questo oggetto per aggiungere l'overlay.

Aggiunta di un overlay

  1. Crea l'istanza di un nuovo oggetto GMSGroundOverlay
  2. Imposta la proprietà icon su un'istanza di UIImage.
  3. Imposta la proprietà bounds su un'istanza di GMSCoordinateBounds. I limiti rappresentano gli angoli sud-ovest e nord-est dell'immagine.
  4. Imposta le proprietà facoltative, come bearing e zoomLevel, in base alle tue esigenze.
  5. Imposta la proprietà map: l'immagine viene visualizzata sulla mappa.

L'esempio seguente mostra come aggiungere un overlay del suolo a un oggetto GMSMapView esistente.

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 del suolo dalla mappa impostando la proprietà map di GMSGroundOverlay su nil. In alternativa, puoi rimuovere tutti gli overlay (compresi gli overlay al suolo attualmente sulla mappa) richiamando il GMSMapView metodo clear.

Swift

mapView.clear()
      

Objective-C

[mapView clear];
      

Se vuoi apportare modifiche a un overlay del suolo dopo averlo aggiunto alla mappa, assicurati di mantenere l'oggetto GMSGroundOverlay. Puoi modificare l'overlay del 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 overlay. Per ascoltare gli eventi, devi implementare il protocollo GMSMapViewDelegate. Consulta la guida agli eventi e l'elenco di metodi su GMSMapViewDelegate.