Controles e gestos

Selecione a plataforma: Android iOS JavaScript

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

Controles do mapa

O SDK do Maps para iOS oferece alguns controles de interface integrados semelhantes aos do app 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 fornece um gráfico de bússola que aparece no canto superior direito do mapa em circunstâncias específicas. A bússola só aparece quando a câmera está orientada com uma direção diferente de zero. Quando o usuário clica na bússola, a câmera 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. Para ativar a bússola, defina a propriedade compassButton de GMSUISettings como YES. No entanto, não é possível forçar a exibição permanente dela.

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 está ativado. Quando um usuário clica no botão, a câmera anima para focar no local atual do usuário, se ele for conhecido. Para ativar o botão, defina a propriedade myLocationButton de GMSUISettings como YES.

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

Seletor de piso

O controle do seletor de nível aparece perto da parte de baixo à direita da tela sempre que um mapa interno é exibido em destaque. Quando dois ou mais mapas internos estão visíveis, o seletor de nível se refere 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.

Para desativar o controle do seletor de andar, defina a propriedade indoorPicker de GMSUISettings como NO.

Swift

mapView.settings.indoorPicker = false
      

Objective-C

mapView.settings.indoorPicker = NO;
      

Gestos do mapa

Para desativar os gestos padrão no mapa, defina as propriedades da classe GMSUISettings, que está disponível como uma propriedade do GMSMapView. Os gestos a seguir podem ser ativados e desativados programaticamente. Desativar o 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 ativado, os usuários podem tocar duas vezes, tocar com dois dedos ou fazer um gesto de pinça para ampliar a câmera. Tocar duas vezes ou fazer o gesto de pinça com o scrollGestures ativado pode mover a câmera para o ponto especificado.
  • tiltGestures: controla se os gestos de inclinação estão ativados ou desativados. Se ativado, os usuários podem usar um gesto de deslizar verticalmente para baixo ou para cima com 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 poderão usar um gesto de rotação com 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;
}