Controlli e gesti

Seleziona la piattaforma: Android iOS JavaScript

Utilizzando Maps SDK for iOS, puoi personalizzare il modo in cui gli utenti interagiscono con la tua mappa, determinando quali componenti dell'interfaccia utente integrati 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 applicate immediatamente alla mappa.

Bussola

Maps SDK for iOS fornisce un'immagine della bussola che viene visualizzata 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 a una posizione con un rilevamento 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 in modo che sia sempre visibile.

Swift

let camera = GMSCameraPosition(latitude: 37.757815, longitude: -122.50764, zoom: 12)
let options = GMSMapViewOptions()
options.camera = camera
let mapView = GMSMapView(options: options)
mapView.settings.compassButton = true
      

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.757815
                                                        longitude:-122.50764
                                                             zoom:12];
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = camera;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
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 questa è 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 del piano

Il controllo del selettore di piano viene visualizzato in basso a destra dello schermo ogni volta che una mappa di interni è in primo piano. Quando sono visibili due o più mappe di interni, il selettore di piani si riferisce all'edificio più vicino al centro dello schermo. Ogni edificio ha un piano predefinito che viene selezionato quando viene visualizzato per la prima volta il selettore. Puoi scegliere un altro piano 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 in modo programmatico. Tieni presente che la disattivazione del gesto non limiterà l'accesso programmatico alle impostazioni della fotocamera.

  • scrollGestures: controlla se i gesti di scorrimento sono attivati o disattivati. Se questa opzione è attiva, gli utenti possono scorrere per spostare la videocamera.
  • zoomGestures: consente di stabilire se i gesti di zoom sono attivati o disattivati. Se questa opzione è abilitata, gli utenti possono toccare due volte, toccare con due dita o pizzicare per pizzicare per aumentare lo zoom della fotocamera. Tieni presente che toccando due volte o pizzicando quando scrollGestures sono attivati, la videocamera potrebbe spostarsi sul punto specificato.
  • tiltGestures: consente di stabilire se i gesti di inclinazione sono attivati o disattivati. Se questa opzione è attiva, gli utenti possono scorrere con due dita verso l'alto o verso il basso 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 seguente, i gesti di panoramica e zoom sono stati disattivati.

Swift

override func loadView() {
  let camera = GMSCameraPosition.camera(
    withLatitude: 1.285,
    longitude: 103.848,
    zoom: 12
  )

  let options = GMSMapViewOptions()
  options.camera = camera
  let mapView = GMSMapView(options: options)
  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];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = camera;
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  mapView.settings.scrollGestures = NO;
  mapView.settings.zoomGestures = NO;
  self.view = mapView;
}