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 IU integrados que son similares a los de 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 aparece en la esquina superior derecha del mapa en determinadas circunstancias. La brújula solo se mostrará cuando el rumbo de la cámara sea distinto de cero. Cuando el usuario hace clic en la brújula, la cámara vuelve a animarse y se ubica en una posición con un rumbo de cero (la orientación predeterminada), y la brújula se desvanece poco después.
La brújula viene desactivada de manera predeterminada. Puedes habilitar la brújula configurando la propiedad compassButton
de GMSUISettings
en 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 solamente cuando se habilita el botón correspondiente. Cuando un usuario hace clic en el botón, la cámara se anima para enfocar la ubicación actual del usuario si esta ubicación se conoce en el momento. 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 pisos
El control del selector de pisos aparece cerca de la parte inferior derecha de la pantalla cuando se muestra de manera prominente un mapa de interiores. Cuando dos o más mapas de interiores sean visibles, el selector de pisos guardará relación con el edificio que esté más cerca del 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 pisos, configura la propiedad indoorPicker
de GMSUISettings
en NO
.
Swift
mapView.settings.indoorPicker = false
Objective-C
mapView.settings.indoorPicker = NO;
Gestos del mapa
Puedes deshabilitar los gestos predeterminados en el mapa configurando las propiedades de la clase GMSUISettings
, que se encuentra disponible como propiedad de GMSMapView
.
Los siguientes gestos pueden habilitarse y deshabilitarse de manera programática. Ten en cuenta que, si inhabilitas el gesto, no se 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 habilitan, los usuarios pueden aplicar dos toques, toques con dos dedos o usar dos dedos para aplicar zoom a la cámara. Ten en cuenta que, cuando están habilitados losscrollGestures
, el toque doble o el acercamiento de dedos pueden desplazar la cámara hasta el punto especificado.tiltGestures
: Controla si los gestos de inclinación están habilitados o inhabilitados. Si se habilitan, los usuarios pueden deslizar dos dedos hacia arriba o abajo para inclinar la cámara.rotateGestures
: Controla si los gestos de rotación están habilitados o inhabilitados. Si se habilitan, los usuarios pueden realizar gestos de rotación con dos dedos para girar 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; }