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

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

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;
}