Overlay al suolo

Seleziona la piattaforma: Android iOS JavaScript

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

  1. Crea un'istanza per un nuovo oggetto GMSGroundOverlay
  2. Imposta la proprietà icon su un'istanza di UIImage.
  3. Imposta la proprietà bounds su un'istanza di GMSCoordinateBounds. La i confini rappresentano gli angoli sud-ovest e nord-est dell'immagine.
  4. Imposta le proprietà facoltative, come bearing e zoomLevel, come preferisci.
  5. 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 tutte degli overlay (compresi gli overlay del suolo attualmente sulla mappa richiamando il GMSMapView metodo 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