Элементы управления и жесты

Выберите платформу: Android iOS JavaScript

Используя 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;
}