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

Выберите платформу: 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;
}