Controles e gestos

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Selecione a plataforma: Android iOS JavaScript

Com o SDK do Maps para iOS, você pode personalizar a maneira como os usuários interagem com seu mapa, determinando quais dos componentes da IU integrados aparecem no mapa e quais gestos são permitidos.

Controles do mapa

O SDK do Maps para iOS oferece alguns controles de IU integrados que são semelhantes aos encontrados no aplicativo do 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 mostra um gráfico de bússola que aparece no canto superior direito do mapa em determinadas circunstâncias. A bússola só será exibida quando a câmera estiver orientada de modo que tenha um rolamento diferente de zero. Quando o usuário clica na bússola, a câmera anima de volta para uma posição com direção zero (orientação padrão), e a bússola desaparece pouco tempo 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 automática 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 anima para focar o local atual do usuário se a localização atual for conhecida. É 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 do seletor de andar aparece próximo ao canto inferior direito da tela sempre que um mapa interno é destacado. Quando dois ou mais mapas internos estão visíveis, o seletor de andar está relacionado ao edifício mais próximo do centro da tela. Cada edifício tem um andar padrão, que é selecionado quando o seletor é exibido 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, que está disponível como uma propriedade da GMSMapView. Os gestos a seguir podem ser ativados e desativados programaticamente. Lembre-se de que a desativação do gesto não limitará 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 são ativados ou desativados. Se ativado, os usuários podem tocar duas vezes, tocar com dois dedos ou fazer gesto de pinça para aumentar o zoom da câmera. Tocar duas vezes ou fazer gesto de pinça quando o scrollGestures estiver ativado pode movimentar a câmera para o ponto especificado.
  • tiltGestures: controla se os gestos de inclinação estão ativados ou desativados. Se esse recurso estiver ativado, os usuários poderão usar um dedo para baixo ou dois dedos para inclinar a câmera.
  • rotateGestures: controla se os gestos de rotação estão ativados ou desativados. Se ativado, 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;
}