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 wchodzą w interakcję z mapą, określając, które z wbudowanych komponentów interfejsu użytkownika mają się pojawiać na mapie i które gesty są dozwolone.

Elementy sterujące mapą

Pakiet Maps SDK na iOS udostępnia kilka wbudowanych elementów sterujących interfejsu, które są podobne 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 tej klasie są natychmiast odzwierciedlane 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 ustawiona tak, że jej orientacja będzie niezerowa. Gdy użytkownik kliknie kompas, kamera animuje powrót do pozycji z zerowym azymutem (orientacja domyślna), a kompas wkrótce potem znika.

Kompas jest domyślnie wyłączony. Możesz włączyć kompas, ustawiając właściwość compassButton obiektu GMSUISettings na YES. Nie można jednak wymusić, aby kompas był zawsze widoczny.

Swift

let camera = GMSCameraPosition(latitude: 37.757815, longitude: -122.50764, zoom: 12)
let options = GMSMapViewOptions()
options.camera = camera
let mapView = GMSMapView(options: options)
mapView.settings.compassButton = true
      

Objective-C

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.757815
                                                        longitude:-122.50764
                                                             zoom:12];
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = camera;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
mapView.settings.compassButton = YES;
      

Przycisk Moja lokalizacja

Przycisk Moja lokalizacja pojawia się w prawym dolnym rogu ekranu tylko wtedy, gdy przycisk lokalizacji jest włączony. Gdy użytkownik kliknie ten przycisk, kamera animuje widok, 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ętra pojawia się w prawym dolnym rogu ekranu, gdy mapa obiektu jest dobrze widoczna. Gdy widoczne są co najmniej 2 mapy obiektów, selektor piętra odnosi się do budynku znajdującego się najbliżej ś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ć selektor piętra, ustawiając właściwość indoorPicker obiektu 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ć automatycznie. 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. Gdy 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 funkcja jest włączona, użytkownicy mogą dwukrotnie kliknąć, kliknąć dwoma palcami lub rozciągnąć palce, aby powiększyć obraz z kamery. Pamiętaj, że dwukrotne kliknięcie lub ściągnięcie palców, gdy włączone są scrollGestures, może spowodować przesunięcie kamery do określonego punktu.
  • tiltGestures – określa, czy gesty przechylania są włączone czy wyłączone. Jeśli ta opcja jest włączona, użytkownicy mogą przechylać kamerę, przesuwając dwoma palcami w pionie w dół lub w górę.
  • rotateGestures – określa, czy gesty obracania są włączone czy wyłączone. Jeśli ta opcja jest włączona, użytkownicy mogą obracać kamerę gestem obracania 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 options = GMSMapViewOptions()
  options.camera = camera
  let mapView = GMSMapView(options: options)
  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];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = camera;
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
  mapView.settings.scrollGestures = NO;
  mapView.settings.zoomGestures = NO;
  self.view = mapView;
}