Elementy sterujące i gesty

Wybierz platformę: Android iOS JavaScript

Za pomocą pakietu Maps SDK na iOS możesz dostosować sposób interakcji użytkowników z mapą, określając, które z wbudowanych komponentów interfejsu użytkownika mają się wyświetlać na mapie, oraz które gesty są dozwolone.

Elementy sterujące mapą

Pakiet Maps SDK na iOS udostępnia kilka wbudowanych elementów sterujących interfejsem, które są podobne do tych, które można znaleźć w aplikacji Mapy Google na iOS. Możesz włączać i wyłączać widoczność tych elementów sterujących za pomocą klasy GMSUISettings. Zmiany wprowadzone w tej klasie są od razu widoczne na mapie.

Kompas

Pakiet SDK Map 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 ustawiona w taki sposób, że będzie miała niezerowy kierunek. Gdy użytkownik kliknie kompas, kamera powróci do pozycji z kierunkiem 0 stopni (domyślna orientacja), a kompas zniknie wkrótce potem.

Kompas jest domyślnie wyłączony. Możesz włączyć kompas, ustawiając właściwość compassButton w elementach GMSUISettings na YES. Nie możesz jednak wymusić wyświetlania kompasu przez cały czas.

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, gdy jest włączony. Gdy użytkownik kliknie przycisk, kamera wykona animację, aby ustawić ostrość na jego bieżącej lokalizacji (jeśli jest ona znana). Możesz włączyć przycisk, ustawiając właściwość myLocationButton w elementach GMSUISettings na YES.

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

Selektor podłogi

Element sterujący wyborem piętra pojawia się w prawym dolnym rogu ekranu, gdy widoczna jest mapa wewnętrzna. Gdy widoczne są co najmniej 2 mapy wewnątrz budynków, selektor piętra 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ć inną kondygnację, wybierając ją w selektorze.

Możesz wyłączyć kontrolę selektora progu, ustawiając właściwość indoorPicker w usługach GMSUISettings na NO.

Swift

mapView.settings.indoorPicker = false
      

Objective-C

mapView.settings.indoorPicker = NO;
      

Gesty na mapie

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ść obiektu GMSMapView. Te gesty można włączać i wyłączać programowo. Pamiętaj, że wyłączenie gestu nie ograniczy dostępu programowego 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ć palcem, aby 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 dotknąć ekranu, dotknąć ekranu dwoma palcami lub ująć palcami, aby przybliżyć obraz w aparacie. Pamiętaj, że dwukrotne kliknięcie lub ściśnięcie palców przy włączonej funkcji scrollGestures może spowodować przewinięcie kamery do określonego punktu.
  • tiltGestures – określa, czy gesty pochylania są włączone czy wyłączone. Jeśli ta opcja 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 2 palcami.

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