Kontrol dan gestur

Pilih platform: Android iOS JavaScript

Dengan Maps SDK for iOS, Anda dapat menyesuaikan cara pengguna berinteraksi dengan peta Anda, dengan menentukan komponen UI bawaan mana yang akan muncul pada peta dan gestur mana yang diizinkan.

Kontrol peta

Maps SDK for iOS menyediakan beberapa kontrol UI bawaan yang serupa dengan yang ada di aplikasi Google Maps for iOS. Anda dapat mengubah visibilitas kontrol ini menggunakan class GMSUISettings. Perubahan yang dilakukan pada class ini segera diterapkan pada peta.

Kompas

Maps SDK for iOS menyediakan gambar kompas yang muncul di sudut kanan atas peta dalam keadaan tertentu. Kompas hanya akan muncul saat kamera diorientasikan sedemikian rupa sehingga memiliki arah bukan nol. Saat pengguna mengklik kompas, kamera akan beranimasi kembali ke posisi dengan arah nol (orientasi default) dan kompas menghilang beberapa saat setelahnya.

Kompas ini secara default dinonaktifkan. Anda dapat mengaktifkan kompas dengan menetapkan properti compassButton dari GMSUISettings ke YES. Namun, Anda tidak dapat memaksa kompas agar selalu ditampilkan.

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;
      

Tombol Lokasiku

Tombol Lokasiku akan muncul di sudut kanan bawah layar hanya jika tombol Lokasiku diaktifkan. Saat pengguna mengklik tombol, kamera akan beranimasi untuk berfokus pada lokasi pengguna saat ini jika lokasi pengguna saat ini diketahui. Anda dapat mengaktifkan tombol dengan menetapkan properti myLocationButton dari GMSUISettings ke YES.

Swift

mapView.settings.myLocationButton = true
      

Objective-C

mapView.settings.myLocationButton = YES;
      

Pemilih lantai

Kontrol pemilih lantai muncul di dekat kanan bawah layar setiap kali peta dalam ruangan ditampilkan dengan jelas. Jika terlihat dua peta dalam ruangan atau lebih, alat pilih lantai akan menampilkan bangunan yang terdekat dengan bagian tengah layar. Setiap bangunan memiliki lantai default yang dipilih saat alat pilih pertama kali ditampilkan. Anda bisa memilih lantai yang berbeda dengan memilihnya dari picker.

Anda dapat menonaktifkan kontrol pemilih lantai dengan menetapkan properti indoorPicker GMSUISettings ke NO.

Swift

mapView.settings.indoorPicker = false
      

Objective-C

mapView.settings.indoorPicker = NO;
      

Gestur peta

Anda dapat menonaktifkan gestur default pada peta dengan menetapkan properti class GMSUISettings, yang tersedia sebagai properti GMSMapView. Isyarat berikut bisa diaktifkan dan dinonaktifkan secara programatis. Perhatikan bahwa menonaktifkan gestur tidak akan membatasi akses terprogram ke setelan kamera.

  • scrollGestures — mengontrol apakah gestur scroll diaktifkan atau dinonaktifkan. Jika diaktifkan, pengguna bisa gesek jari untuk menggeser kamera.
  • zoomGestures — mengontrol apakah gestur zoom diaktifkan atau dinonaktifkan. Jika diaktifkan, pengguna dapat mengetuk dua kali, mengetuk dengan dua jari, atau mencubit untuk memperbesar/memperkecil kamera. Perhatikan bahwa mengetuk dua kali atau mencubit saat scrollGestures diaktifkan dapat menggeser kamera ke titik yang ditentukan.
  • tiltGestures — mengontrol apakah gestur kemiringan diaktifkan atau dinonaktifkan. Jika diaktifkan, pengguna dapat menggunakan geser dua jari vertikal ke bawah atau ke atas untuk memiringkan kamera.
  • rotateGestures — mengontrol apakah gestur putar diaktifkan atau dinonaktifkan. Jika diaktifkan, pengguna dapat menggunakan gestur putar dengan dua jari untuk memutar kamera.

Dalam contoh di bawah ini, isyarat geser dan zoom telah dinonaktifkan.

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