Elementy sterujące i gesty

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Wybierz platformę: Android iOS JavaScript

Za pomocą pakietu SDK Map na iOS możesz dostosować sposób interakcji użytkowników z mapą, określając, które z wbudowanych komponentów UI na mapie mają być dozwolone.

Elementy sterujące mapą

Maps SDK na iOS udostępnia kilka opcji interfejsu, które są podobne do dostępnych w aplikacji Mapy Google na iOS. Widoczność tych ustawień możesz zmienić za pomocą klasy GMSUISettings. Zmiany wprowadzone w tych zajęciach zostaną natychmiast odzwierciedlone na mapie.

Kompas

Maps SDK na iOS zawiera grafikę z kompasem, która w określonych okolicznościach wyświetla się w prawym górnym rogu mapy. Kompas pojawia się tylko wtedy, gdy aparat jest skierowany w taki sposób, że ma on kąt zerowy. Gdy użytkownik kliknie kompas, kamera animuje się z pozycją zerową (domyślna orientacja), a komplet wkrótce zniknie.

Kompas jest domyślnie wyłączony. Kompas możesz włączyć, ustawiając właściwość compassButton dla właściwości GMSUISettings na YES. Nie możesz jednak wymusić wyświetlania kompasu w każdej chwili.

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 przycisk Moja lokalizacja jest włączony. Gdy użytkownik kliknie przycisk, aparat zostanie animowany i będzie skupić się na bieżącej lokalizacji użytkownika, jeśli jego bieżąca lokalizacja będzie znana. Możesz włączyć ten przycisk, ustawiając właściwość myLocationButton dla właściwości GMSUISettings na YES.

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

Selektor pięter

Za każdym razem, gdy widoczna jest mapa wnętrza, element sterujący selektora piętra wyświetla się w prawym dolnym rogu ekranu. Gdy widoczne są co najmniej 2 mapy obiektów wewnątrz budynku, selektor piętra odnosi się do budynku znajdującego się najbliżej środka ekranu. Każdy budynek ma domyślne piętro wybrane podczas pierwszego wyświetlania selektora. Możesz wybrać inne piętro, wybierając je z selektora.

Możesz wyłączyć wybór selektora piętra, ustawiając właściwość indoorPicker w polu GMSUISettings na NO.

Swift

mapView.settings.indoorPicker = false
      

Objective-C

mapView.settings.indoorPicker = NO;
      

Gesty na mapie

Możesz wyłączyć domyślne gesty na mapie, ustawiając właściwości klasy GMSUISettings, która jest właściwością właściwości GMSMapView. Te gesty można automatycznie włączać i wyłączać. Wyłączenie gestu nie spowoduje automatycznego dostępu do ustawień kamery.

  • scrollGestures – określa, czy gesty przewijania są włączone czy wyłączone. Jeśli zasada jest włączona, użytkownicy mogą przesuwać palcem, aby przesuwać kamerę.
  • zoomGestures – określa, czy gesty powiększenia są włączone czy wyłączone. Gdy ta opcja jest włączona, użytkownicy mogą kliknąć dwukrotnie, dwoma palcami lub ściągnąć palce, aby powiększyć kamerę. Pamiętaj, że gdy urządzenie scrollGestures jest włączone dwukrotne dotknięcie lub ściągnięcie, może przesunąć kamerę do określonego punktu.
  • tiltGestures – określa, czy gesty pochylenia są włączone czy wyłączone. Gdy ta opcja jest włączona, użytkownicy mogą obracać aparat, przesuwając 2 palcami w dół lub w górę.
  • rotateGestures – określa, czy gesty obrotu są włączone czy wyłączone. Jeśli zasada jest włączona, użytkownicy mogą obracać aparat 2 palcami.

W poniższym przykładzie zarówno gesty przesunięcia, jak i powiększenia 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;
}