Con el SDK de Maps para iOS, puedes personalizar la forma en que los usuarios interactúan con tu mapa. Para ello, debes determinar qué componentes integrados de la IU aparecen en el mapa y qué gestos están permitidos.
Controles del mapa
El SDK de Maps para iOS proporciona algunos controles de 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 la cámara esté orientada de modo que su rumbo no equivalga a cero. Cuando el usuario hace clic en la brújula, la cámara adopta una posición en la que el rumbo es cero (la orientación predeterminada) y la brújula se atenúa poco después.
La brújula viene desactivada de manera predeterminada. Para habilitar la brújula, configura la propiedad compassButton
de GMSUISettings
como YES
. Sin embargo, no puedes forzar la aparición de la brújula 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 el botón Mi ubicación. Cuando un usuario hace clic en el botón, la cámara se anima para enfocarse en la ubicación actual del usuario si la ubicación del usuario es conocida en este momento. Para habilitar el botón, configura la propiedad myLocationButton
de GMSUISettings
en YES
.
Swift
mapView.settings.myLocationButton = true
Objective‑C
mapView.settings.myLocationButton = YES;
Seleccionador de pisos
El control del selector de piso aparece cerca de la parte inferior derecha de la pantalla cada vez que un mapa de interiores se destaca de manera destacada. Cuando dos o más mapas de interiores son visibles, el seleccionador de pisos se relaciona con el edificio más cercano al centro de la pantalla. Cada edificio tiene un piso predeterminado que se selecciona cuando se muestra por primera vez el selector. Puedes seleccionar un piso diferente eligiéndolo en el seleccionador.
Puedes inhabilitar el control del selector de pisos si configuras 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 si configuras 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 se habilitan o inhabilitan los gestos de zoom. Si se habilitan, los usuarios pueden presionar dos veces, presionar con dos dedos o pellizcar para acercar la cámara. Ten en cuenta que, cuando están habilitados los toques, la función de presionar dos veces o pellizcar,scrollGestures
puede desplazar la cámara hasta el punto especificado.tiltGestures
: Controla si los gestos de inclinación están habilitados o inhabilitados. Si se habilita, los usuarios pueden deslizar dos dedos hacia arriba o abajo para inclinar la cámara.rotateGestures
: Controla si se habilitan o inhabilitan los gestos de rotación. Si se habilitan, los usuarios pueden usar un gesto de rotación de 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; }