Используя 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
Цель-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
Цель-C
mapView.settings.myLocationButton = YES;
Выбор этажа
Элемент управления выбором этажа появляется в правом нижнем углу экрана всякий раз, когда карта помещения занимает видное место. Если видны две или более карты помещений, выбор этажа относится к зданию, ближайшему к центру экрана. У каждого здания есть этаж по умолчанию, который выбирается при первом отображении средства выбора. Вы можете выбрать другой этаж, выбрав его в меню выбора.
Вы можете отключить элемент управления выбором этажа, установив для свойства indoorPicker
GMSUISettings
значение NO
.
Быстрый
mapView.settings.indoorPicker = false
Цель-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 }
Цель-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; }