Elementy sterujące i gesty

Wybierz platformę: Android iOS JavaScript

Za pomocą pakietu Maps SDK na iOS możesz dostosować sposób, w jaki użytkownicy wchodzą w interakcje z mapą, określając, które z wbudowanych komponentów interfejsu mają pojawiać się na mapie i które gesty są dozwolone.

Elementy sterujące mapą

Maps SDK na iOS ma wbudowane elementy sterujące interfejsu podobne do tych w aplikacji Mapy Google na iOS. Widoczność tych elementów sterujących możesz włączyć za pomocą klasy GMSUISettings. Zmiany wprowadzone w tych zajęciach są natychmiast odzwierciedlane na mapie.

Kompas

Maps SDK na iOS udostępnia grafikę kompasu, która w pewnych okolicznościach wyświetla się w prawym górnym rogu mapy. Kompas jest widoczny tylko wtedy, gdy kamera jest zorientowana na wartość inną niż zero. Gdy użytkownik kliknie kompas, kamera wróci do położenia z kierunkiem zero (orientacja domyślna), a kompas po chwili znika.

Kompas jest domyślnie wyłączony. Możesz włączyć kompas, ustawiając właściwość compassButton właściwości GMSUISettings na YES. Nie można jednak wymusić, aby zawsze się wyświetlał.

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;
      

Przycisk Moja lokalizacja

Przycisk Moja lokalizacja jest wyświetlany w prawym dolnym rogu ekranu tylko wtedy, gdy jest włączony przycisk Moja lokalizacja. Gdy użytkownik kliknie przycisk, kamera zostanie animowana, tak aby skupiała się na bieżącej lokalizacji użytkownika, jeśli jest ona obecnie znana. Aby włączyć ten przycisk, ustaw właściwość myLocationButton elementu GMSUISettings na YES.

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

Selektor pięter

Element sterujący selektora pięter pojawia się w prawym dolnym rogu ekranu za każdym razem, gdy wyraźnie widoczna jest mapa obiektu. Jeśli widoczne są co najmniej dwie mapy obiektu, selektor pięter odnosi się do budynku najbliżej środka ekranu. Każdy budynek ma domyślne piętro wybierane przy pierwszym wyświetleniu selektora. Możesz wybrać inne piętro, wybierając je z selektora.

Aby wyłączyć selektor pięter, ustaw właściwość indoorPicker GMSUISettings na NO.

Swift

mapView.settings.indoorPicker = false
      

Objective-C

mapView.settings.indoorPicker = NO;
      

Gesty w Mapach

Możesz wyłączyć domyślne gesty na mapie, ustawiając właściwości klasy GMSUISettings, która jest dostępna jako właściwość GMSMapView. Poniższe gesty można włączać i wyłączać automatycznie. Pamiętaj, że wyłączenie tego gestu nie ogranicza automatycznego dostępu do ustawień aparatu.

  • scrollGestures – określa, czy gesty przewijania mają być włączone czy wyłączone. Jeśli ta opcja jest włączona, użytkownicy mogą przesuwać aparat, aby przesuwać widok.
  • zoomGestures – określa, czy gesty powiększenia mają być włączone czy wyłączone. Gdy ta opcja jest włączona, użytkownicy mogą kliknąć dwukrotnie kamerę, kliknąć 2 palcami lub ściągnąć palce, aby powiększyć obraz. Pamiętaj, że dwukrotne dotknięcie lub ściągnięcie palcami po włączeniu opcji scrollGestures może przesunąć kamerę do wybranego punktu.
  • tiltGestures – określa, czy gesty przechylania mają być włączone czy wyłączone. Jeśli ta opcja jest włączona, użytkownicy mogą przechylać kamerę, przesuwając 2 palcami pionowo w dół lub w górę.
  • rotateGestures – określa, czy gesty obracania mają być włączone czy wyłączone. Jeśli ta opcja jest włączona, użytkownicy mogą obracać kamerę za pomocą gestu obracania 2 palcami.

W przykładzie poniżej zarówno gesty przesuwania, jak i powiększania zostały wyłączone.

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;
}