Elementy sterujące i gesty

Wybierz platformę: Android iOS JavaScript

Korzystając z pakietu Maps SDK na iOS, możesz dostosować sposób interakcji użytkowników z mapą, określając, które wbudowane komponenty interfejsu mają się na niej pojawiać i jakie gesty są dozwolone.

Elementy sterujące mapą

Pakiet Maps SDK na iOS udostępnia wbudowane elementy interfejsu podobne do tych, które można znaleźć w aplikacji Mapy Google na iOS. Widoczność tych elementów sterujących możesz przełączać za pomocą klasy GMSUISettings. Zmiany wprowadzone w tej klasie są od razu widoczne na mapie.

Kompas

Pakiet Maps SDK na iOS udostępnia grafikę kompasu, która w określonych okolicznościach pojawia się w prawym górnym rogu mapy. Kompas pojawi się tylko wtedy, gdy kamera będzie skierowana w taki sposób, aby mieć niezerowy kierunek. Gdy użytkownik kliknie kompas, kamera powróci do pozycji z kierunkiem 0 (domyślna orientacja), a kompas wkrótce zniknie.

Kompas jest domyślnie wyłączony. Kompas możesz włączyć, ustawiając właściwość compassButton elementu GMSUISettings na YES. Nie możesz jednak wymusić, aby 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 pojawia się w prawym dolnym rogu ekranu tylko wtedy, gdy jest włączony. Gdy użytkownik kliknie przycisk, kamera zostanie animowana, aby skupić się na bieżącej lokalizacji użytkownika, jeśli jest ona znana. Możesz włączyć przycisk, ustawiając właściwość myLocationButton elementu GMSUISettings na YES.

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

Selektor pięter

Selektor pięter pojawia się w prawym dolnym rogu ekranu, gdy mapa wnętrz jest wyświetlana w dużym powiększeniu. Gdy widoczne są co najmniej 2 mapy wnętrz, selektor pięter odnosi się do budynku najbliższego środka ekranu. Każdy budynek ma domyślne piętro, które jest wybierane, gdy selektor jest wyświetlany po raz pierwszy. Możesz wybrać inne piętro, klikając je w selektorze.

Możesz wyłączyć kontrolkę wyboru minimalnej ceny, ustawiając właściwość indoorPicker elementu 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 dostępna jako właściwość klasy GMSMapView. Poniższe gesty można włączać i wyłączać programowo. Pamiętaj, że wyłączenie gestu nie ograniczy programowego dostępu do ustawień aparatu.

  • scrollGestures – określa, czy gesty przewijania są włączone czy wyłączone. Jeśli ta opcja jest włączona, użytkownicy mogą przesuwać kamerę.
  • zoomGestures – określa, czy gesty powiększania są włączone czy wyłączone. Jeśli ta opcja jest włączona, użytkownicy mogą dwukrotnie kliknąć, dotknąć dwoma palcami lub uszczypnąć, aby powiększyć obraz z kamery. Pamiętaj, że dwukrotne kliknięcie lub ściągnięcie, gdy scrollGesturessą włączone, może spowodować przesunięcie kamery do określonego punktu.
  • tiltGestures – określa, czy gesty pochylenia są włączone czy wyłączone. Jeśli ta funkcja jest włączona, użytkownicy mogą przechylać kamerę, przesuwając 2 palcami w górę lub w dół.
  • rotateGestures – określa, czy gesty obracania są włączone czy wyłączone. Jeśli ta opcja jest włączona, użytkownicy mogą obracać kamerę za pomocą gestu obrotu dwoma palcami.

W poniższym przykładzie wyłączono gesty przesuwania i powiększania.

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