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 . 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, gdyscrollGestures
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; }