Используя SDK для iOS, вы можете настроить взаимодействие пользователей с вашей картой, определив, какие из встроенных компонентов пользовательского интерфейса будут отображаться на карте и какие жесты разрешены.
Элементы управления картой
SDK для iOS предоставляет ряд встроенных элементов управления пользовательского интерфейса, аналогичных тем, что используются в приложении Google Maps для iOS. Вы можете переключать видимость этих элементов управления с помощью класса GMSUISettings . Изменения, внесенные в этот класс, немедленно отображаются на карте.
Компас
SDK для iOS предоставляет графическое изображение компаса, которое появляется в правом верхнем углу карты при определенных условиях. Компас появляется только тогда, когда камера ориентирована таким образом, что имеет ненулевой пеленг. Когда пользователь нажимает на компас, камера анимируется, возвращаясь в положение с нулевым пеленгом (ориентация по умолчанию), и компас вскоре исчезает.
Компас по умолчанию отключен. Вы можете включить компас, установив свойство compassButton объекта GMSUISettings в YES . Однако вы не можете заставить компас отображаться постоянно.
Быстрый
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;
Кнопка "Мое местоположение"
Кнопка «Мое местоположение» появляется в правом нижнем углу экрана только тогда, когда кнопка «Мое местоположение» активирована. При нажатии пользователем этой кнопки камера анимируется, фокусируясь на текущем местоположении пользователя, если это местоположение известно. Вы можете включить кнопку, установив свойство myLocationButton объекта GMSUISettings в YES .
Быстрый
mapView.settings.myLocationButton = true
Objective-C
mapView.settings.myLocationButton = YES;
Сборщик напольных покрытий
Панель выбора этажа появляется в правом нижнем углу экрана всякий раз, когда на экране отображается карта помещения. Если видны две или более карт помещений, панель выбора этажа соответствует зданию, ближайшему к центру экрана. Каждое здание имеет этаж по умолчанию, который выбирается при первом отображении панели выбора. Вы можете выбрать другой этаж, выбрав его в панели выбора.
Вы можете отключить элемент управления выбором этажа, установив свойство indoorPicker объекта GMSUISettings в NO .
Быстрый
mapView.settings.indoorPicker = false
Objective-C
mapView.settings.indoorPicker = NO;
Жесты на карте
Вы можете отключить стандартные жесты на карте, задав свойства класса GMSUISettings , который доступен в качестве свойства объекта GMSMapView . Следующие жесты можно включать и отключать программно. Обратите внимание, что отключение жеста не ограничивает программный доступ к настройкам камеры.
-
scrollGestures— управляет включением или отключением жестов прокрутки. Если включено, пользователи могут проводить пальцем по экрану для перемещения камеры. -
zoomGestures— управляет включением или отключением жестов масштабирования. Если включено, пользователи могут дважды коснуться экрана, коснуться двумя пальцами или сжать экран, чтобы увеличить масштаб камеры. Обратите внимание, что двойное касание или сжатие экрана при включенныхscrollGesturesможет переместить камеру в указанную точку. -
tiltGestures— управляет включением или отключением жестов наклона. Если включено, пользователи могут использовать вертикальный свайп двумя пальцами вниз или вверх для наклона камеры. -
rotateGestures— управляет включением или отключением жестов вращения. Если включено, пользователи могут использовать жест вращения двумя пальцами для поворота камеры.
В приведенном ниже примере жесты панорамирования и масштабирования отключены.
Быстрый
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; }