Используя Maps SDK для iOS, вы можете настроить способ взаимодействия пользователей с вашей картой, определив, какие из встроенных компонентов пользовательского интерфейса будут отображаться на карте и какие жесты разрешены.
Управление картой
Maps SDK для iOS предоставляет ряд встроенных элементов управления пользовательским интерфейсом, аналогичных элементам в приложении Google Maps для iOS. Вы можете включить или отключить видимость этих элементов управления с помощью класса GMSUISettings
. Изменения, внесённые в этот класс, немедленно отображаются на карте.
Компас
Maps 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; }