Com o SDK do Maps para iOS, você personaliza como os usuários interagem com seu mapa, determinando quais componentes integrados da interface são exibidos no mapa e quais gestos são permitidos.
Controles do mapa
O SDK do Maps para iOS oferece alguns controles de IU integrados semelhantes
aos encontrados no aplicativo Google Maps para iOS. É possível
alternar a visibilidade desses controles usando a classe GMSUISettings
.
As alterações feitas nessa classe são aplicadas imediatamente ao mapa.
Bússola
O SDK do Maps para iOS oferece um gráfico de bússola, que aparece no canto superior direito do mapa em determinadas circunstâncias. A bússola só é exibida quando a câmera está orientada com um rumo diferente de zero. Quando o usuário clica na bússola, a câmera volta para uma posição com direção zero (a orientação padrão) e a bússola desaparece logo depois.
Por padrão, a bússola é desativada. É possível ativar a bússola definindo a
propriedade compassButton
de GMSUISettings
como YES
. No entanto, não é possível
forçar a exibição permanente da bússola.
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ão "Meu local"
O botão "Meu local" aparece no canto inferior direito da tela somente quando o botão "Meu local" está ativado. Quando um usuário clica no botão, a
câmera se anima para focar no local atual do usuário, se ele
for conhecido. É possível ativar o botão definindo a
propriedade myLocationButton
de GMSUISettings
como YES
.
Swift
mapView.settings.myLocationButton = true
Objective-C
mapView.settings.myLocationButton = YES;
Seletor de andar
O controle de seletor de andar aparece perto do canto inferior direito da tela sempre que um mapa interno é exibido proeminentemente. Quando dois ou mais mapas internos são visíveis, o seletor de andar é aplicado ao edifício mais próximo do centro da tela. Cada edifício tem um andar padrão, que é selecionado quando o seletor aparece pela primeira vez. Os usuários podem escolher um andar diferente selecionando-o no seletor.
É possível desativar o controle do seletor de andar definindo a propriedade indoorPicker
de GMSUISettings
como NO
.
Swift
mapView.settings.indoorPicker = false
Objective-C
mapView.settings.indoorPicker = NO;
Gestos do mapa
É possível desativar os gestos padrão no mapa definindo propriedades da classe GMSUISettings
, disponível como uma propriedade de GMSMapView
.
Os gestos a seguir podem ser ativados e desativados programaticamente. A
desativação do gesto não limita o acesso programático às configurações
da câmera.
scrollGestures
: controla se os gestos de rolagem estão ativados ou desativados. Se ativados, os usuários podem deslizar o dedo para deslocar a câmera.zoomGestures
: controla se os gestos de zoom estão ativados ou desativados. Se ativados, os usuários podem tocar duas vezes, tocar com dois dedos ou pinçar para alterar o zoom da câmera. Toque duplo ou gesto de pinça quandoscrollGestures
estiver ativado pode deslocar a câmera para o ponto especificado.tiltGestures
: controla se os gestos de inclinação estão ativados ou desativados. Se ativados, os usuários podem deslizar dois dedos para baixo ou para cima para inclinar a câmera.rotateGestures
: controla se os gestos de rotação estão ativados ou desativados. Se ativados, os usuários podem usar um gesto de rotação de dois dedos para girar a câmera.
No exemplo a seguir, os gestos de deslocamento e zoom foram desativados.
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; }