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

Elementy sterujące mapą

Pakiet Maps SDK na iOS ma wbudowane elementy sterujące interfejsu, podobnych do tych w aplikacji Mapy Google na iOS. Dostępne opcje przełączać widoczność tych elementów sterujących za pomocą klasy GMSUISettings. Zmiany wprowadzone w tych zajęciach są natychmiast odzwierciedlane na mapie.

Kompas

Maps SDK na iOS zawiera grafikę kompasu, która jest wyświetlana prawego górnego rogu mapy w pewnych okolicznościach. Kompas będzie pojawiają się, gdy kamera jest ustawiona tak, że jej położenie jest inne niż zero. Gdy użytkownik klika kompas, kamera przesuwa się z powrotem do pozycji zero (orientacja domyślna), a kompas po chwili zanika.

Kompas jest domyślnie wyłączony. Aby włączyć kompas, ustaw Właściwość compassButton o wartości od GMSUISettings do YES. Nie możesz jednak wymusza, by kompas był 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 jest widoczny tylko w prawym dolnym rogu ekranu. gdy przycisk Moja lokalizacja jest włączony. Gdy użytkownik kliknie przycisk, animowany obraz aparatu skupia się na bieżącej lokalizacji użytkownika, jest obecnie znany. Aby go włączyć, ustaw Właściwość myLocationButton o wartości od GMSUISettings do YES.

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

Selektor pięter

Przycisk selektora pięter pojawia się w prawym dolnym rogu ekranu za każdym razem, jest wyraźnie przedstawiona. Jeśli widoczne są co najmniej dwie mapy obiektów, oznacza budynek najbliżej środka ekranu. Każdy budynek ma domyślne piętro, które jest wybierane, gdy selektor zostanie ustawiony jako pierwszy wyświetlenie. Możesz wybrać inne piętro, wybierając je z selektora.

Aby wyłączyć selektor pięter, ustaw właściwość indoorPicker z GMSUISettings do 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 GMSUISettings, która jest dostępna jako właściwość elementu GMSMapView. Poniższe gesty można włączać i wyłączać automatycznie. Pamiętaj, że wyłączenie gestu nie ogranicza automatycznego dostępu do aparatu ustawieniach.

  • scrollGestures – określa, czy gesty przewijania mają być włączone, wyłączono. 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. lub wyłączona. Jeśli ta opcja jest włączona, użytkownicy mogą kliknąć dwukrotnie, kliknąć 2 palcami lub ściągnąć palce, aby: i powiększyć aparat. Pamiętaj, aby kliknąć dwukrotnie lub ściągnąć palce, gdy scrollGestures może przesunąć kamerę do określonego punktu.
  • tiltGestures – określa, czy gesty pochylenia są włączone, wyłączono. Jeśli ta opcja jest włączona, użytkownicy mogą przesuwać 2 palcami pionowo w dół lub w górę aby przechylić kamerę.
  • rotateGestures – określa, czy gesty obracania mają być włączone lub wyłączona. Jeśli ta opcja jest włączona, użytkownicy mogą używać gestu obracania 2 palcami, aby i obróć aparat.

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