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 korzystają z mapy, określając, które z wbudowanych komponentów interfejsu użytkownika pojawiają się na mapie i które gesty są dozwolone.

Elementy sterujące mapą

Pakiet SDK Map Google na iOS ma kilka wbudowanych opcji w interfejsie użytkownika, podobnych do tych w aplikacji Mapy Google na iOS. Widoczność tych elementów sterujących możesz przełączać za pomocą klasy GMSUISettings. Zmiany wprowadzone w tych zajęciach są natychmiast odzwierciedlane na mapie.

Kompas

Pakiet SDK Map Google na iOS udostępnia grafikę kompasu, która w pewnych okolicznościach wyświetla się w prawym górnym rogu mapy. Kompas pojawi się tylko wtedy, gdy kąt nachylenia kamery jest inny niż zero. Po kliknięciu kompasu przez użytkownika kamera cofa się do pozycji z odchyleniem od zera (orientacja domyślna), a wkrótce zanika.

Kompas jest domyślnie wyłączony. Aby włączyć kompas, ustaw właściwość compassButton elementu GMSUISettings na YES. Nie można jednak wymusić, by był on zawsze widoczny.

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 pojawia się w prawym dolnym rogu ekranu tylko wtedy, gdy przycisk Moja lokalizacja jest włączony. Gdy użytkownik kliknie przycisk, kamera przełączy się na jego bieżącą lokalizację, jeśli jest ona znana. Aby włączyć ten przycisk, ustaw właściwość myLocationButton elementu GMSUISettings na wartość 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, gdy w dobrze widocznym miejscu znajduje się mapa wnętrza. Jeśli widzisz co najmniej dwie mapy obiektów, selektor pięter odnosi się do budynku znajdującego się najbliżej środka ekranu. Każdy budynek ma domyślne piętro, które jest 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

Domyślne gesty na mapie możesz wyłączyć, 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 gestu nie ograniczy zautomatyzowanego dostępu do ustawień kamery.

  • scrollGestures – określa, czy gesty przewijania mają być włączone czy wyłączone. Gdy ta opcja jest włączona, użytkownicy mogą przesuwać palcem, aby przesuwać kamerę.
  • zoomGestures – określa, czy gesty powiększania mają być włączone czy wyłączone. Po włączeniu tej opcji użytkownicy mogą powiększyć kamerę, klikając dwukrotnie, dotykając 2 palcami albo ściągnąc lub ściskając. Pamiętaj, że dwukrotne dotknięcie lub ściąganie palców po włączeniu opcji scrollGestures może spowodować przesunięcie kamery do określonego punktu.
  • tiltGestures – określa, czy gesty przechylania są włączone czy wyłączone. Po włączeniu użytkownicy mogą przechylać kamerę 2 palcami w pionie lub w górę.
  • rotateGestures – określa, czy gesty obracania mają być włączone czy wyłączone. Gdy ta opcja jest włączona, użytkownicy mogą obracać kamerę 2 palcami.

W poniższym przykładzie gesty przesuwania 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;
}