Utilizzando Maps SDK for iOS, puoi personalizzare il modo in cui gli utenti interagiscono con la tua mappa, determinando quali componenti dell'interfaccia utente integrata vengono visualizzati sulla mappa e quali gesti sono consentiti.
Controlli di mappa
Maps SDK for iOS fornisce alcuni controlli UI integrati simili a quelli presenti nell'applicazione Google Maps per iOS. Puoi
attivare/disattivare la visibilità di questi controlli utilizzando la classe GMSUISettings
.
Le modifiche apportate a questa classe vengono immediatamente visualizzate sulla mappa.
Bussola
Maps SDK for iOS fornisce un grafico della bussola che viene visualizzato nell'angolo in alto a destra della mappa in determinate circostanze. La bussola viene visualizzata solo quando la videocamera è orientata in modo da avere un rilevamento diverso da zero. Quando l'utente fa clic sulla bussola, la videocamera torna in una posizione con orientamento pari a zero (l'orientamento predefinito) e la bussola scompare poco dopo.
La bussola è disattivata per impostazione predefinita. Puoi attivare la bussola impostando la proprietà
compassButton
di GMSUISettings
su YES
. Tuttavia, non puoi
forzare la visualizzazione della bussola.
Swift
let camera = GMSCameraPosition(latitude: 37.757815, longitude: -122.50764, zoom: 12) let mapView = GMSMapView(frame: .zero, camera: camera) mapView.settings.compassButton = true
Objective-C
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.757815 longitude:-122.50764 zoom:12]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; mapView.settings.compassButton = YES;
Pulsante La mia posizione
Il pulsante La mia posizione viene visualizzato nell'angolo in basso a destra dello schermo solo
quando è attivato. Quando un utente fa clic sul pulsante, la
fotocamera si anima per mettere a fuoco la posizione attuale dell'utente, se è nota. Puoi attivare il pulsante impostando la proprietà
myLocationButton
di GMSUISettings
su YES
.
Swift
mapView.settings.myLocationButton = true
Objective-C
mapView.settings.myLocationButton = YES;
Selettore piano
Il controllo di selezione del piano viene visualizzato in basso a destra dello schermo ogni volta che viene visualizzata in primo piano una mappa interna. Quando sono visibili due o più mappe interne, il selettore dei piani si riferisce all'edificio più vicino al centro dello schermo. Ogni edificio ha un piano predefinito selezionato quando viene visualizzato per la prima volta il selettore. Puoi scegliere un piano diverso selezionandolo dal selettore.
Puoi disattivare il controllo del selettore di piani impostando la proprietà indoorPicker
di GMSUISettings
su NO
.
Swift
mapView.settings.indoorPicker = false
Objective-C
mapView.settings.indoorPicker = NO;
Gesti sulla mappa
Puoi disattivare i gesti predefiniti sulla mappa impostando le proprietà della classe
GMSUISettings
, disponibile come proprietà di GMSMapView
.
I seguenti gesti possono essere attivati e disattivati a livello di programmazione. Tieni presente che
la disattivazione del gesto non limita l'accesso programmatico alle impostazioni
della videocamera.
scrollGestures
: controlla se i gesti di scorrimento sono attivati o disattivati. Se questa opzione è attiva, gli utenti possono scorrere per spostare la videocamera.zoomGestures
: controlla se i gesti di zoom sono attivati o disattivati. Se questa opzione è attiva, gli utenti possono toccare due volte, toccare con due dita o pizzicare per aumentare lo zoom della videocamera. Tieni presente che toccare due volte o pizzicare quandoscrollGestures
sono attive potrebbe spostare la videocamera sul punto specificato.tiltGestures
: controlla se i gesti di inclinazione sono attivati o disattivati. Se questa opzione è attiva, gli utenti possono scorrere verticalmente verso il basso o verso l'alto con due dita per inclinare la videocamera.rotateGestures
: controlla se i gesti di rotazione sono attivati o disattivati. Se questa opzione è abilitata, gli utenti possono utilizzare un gesto di rotazione con due dita per ruotare la videocamera.
Nell'esempio riportato di seguito, i gesti di panoramica e zoom sono stati entrambi disattivati.
Swift
override func loadView() { let camera = GMSCameraPosition.camera( withLatitude: 1.285, longitude: 103.848, zoom: 12 ) let mapView = GMSMapView.map(withFrame: .zero, camera: camera) mapView.settings.scrollGestures = false mapView.settings.zoomGestures = false self.view = mapView }
Objective-C
- (void)loadView { GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285 longitude:103.848 zoom:12]; GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; mapView.settings.scrollGestures = NO; mapView.settings.zoomGestures = NO; self.view = mapView; }