Controles y gestos

Selecciona la plataforma: Android iOS JavaScript

Con el SDK de Maps para iOS, puedes personalizar la manera en que los usuarios interactúan con tu mapa, ya que te ofrece la posibilidad de determinar qué componentes integrados en la IU aparecerán en el mapa y qué gestos estarán permitidos.

Controles del mapa

El SDK de Maps para iOS proporciona algunos controles de la IU integrados que son similares a los que se encuentran en la aplicación de Google Maps para iOS. Puedes activar o desactivar la visibilidad de estos controles con la clase GMSUISettings. Los cambios realizados en esta clase se reflejan de inmediato en el mapa.

Brújula

El SDK de Maps para iOS proporciona un gráfico de brújula que, en ciertas circunstancias, aparece en la esquina superior derecha del mapa. La brújula solo se mostrará cuando el rumbo de la cámara difiera de cero. Cuando el usuario hace clic en la brújula, la cámara adopta una posición en la que el rumbo equivale a cero (es decir, la orientación predeterminada), y la brújula se atenúa poco después.

La brújula viene desactivada de manera predeterminada. Puedes habilitar la brújula configurando la propiedad compassButton de GMSUISettings como YES. Sin embargo, no puedes forzar su aparición en todo momento.

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;
      

Botón Mi ubicación

El botón Mi ubicación aparece en la esquina inferior derecha de la pantalla solo cuando está habilitado. Cuando un usuario hace clic en el botón, la cámara se anima para enfocarse en la ubicación actual del usuario si se conoce. Puedes habilitar el botón configurando la propiedad myLocationButton de GMSUISettings como YES.

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

Selector de piso

El control del selector de piso aparece cerca de la esquina inferior derecha de la pantalla cuando se destaca un mapa de interiores. Cuando hay dos o más mapas de interiores visibles, el selector de piso se relaciona con el edificio más cercano al centro de la pantalla. Cada edificio tiene un piso predeterminado, que se selecciona cuando aparece por primera vez el selector. Puedes seleccionar un piso diferente eligiéndolo en el seleccionador.

Para inhabilitar el control del selector de piso, configura la propiedad indoorPicker de GMSUISettings como NO.

Swift

mapView.settings.indoorPicker = false
      

Objective-C

mapView.settings.indoorPicker = NO;
      

Gestos del mapa

Puedes inhabilitar los gestos predeterminados en el mapa configurando las propiedades de la clase GMSUISettings, que está disponible como propiedad de GMSMapView. Los siguientes gestos pueden habilitarse y deshabilitarse de manera programática. Ten en cuenta que inhabilitar el gesto no limitará el acceso programático a la configuración de la cámara.

  • scrollGestures: Controla si los gestos de desplazamiento están habilitados o inhabilitados. Si se habilitan, los usuarios pueden deslizar el dedo para desplazar la cámara.
  • zoomGestures: Controla si los gestos de zoom están habilitados o inhabilitados. Si se habilita esta opción, los usuarios pueden presionar dos veces, presionar con dos dedos o pellizcar para acercar la cámara. Ten en cuenta que, si presionas dos veces o pellizcas la pantalla cuando scrollGestures están habilitados, es posible que la cámara se desplace horizontalmente hasta el punto especificado.
  • tiltGestures: Controla si los gestos de inclinación están habilitados o inhabilitados. Si se habilita esta opción, los usuarios pueden deslizar dos dedos verticalmente hacia arriba o hacia abajo para inclinar la cámara.
  • rotateGestures: Controla si los gestos de rotación están habilitados o inhabilitados. Si se habilita esta opción, los usuarios podrán usar un gesto de rotación con dos dedos para rotar la cámara.

En el ejemplo siguiente, se desactivan los gestos de desplazamiento y zoom.

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;
}