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

С помощью Maps SDK for Android можно изменить способ взаимодействия пользователей с картой, определяя, какие из встроенных компонентов пользовательского интерфейса будут отображаться на карте и какие жесты допустимы.

Примеры кода

Репозиторий ApiDemos на сайте GitHub содержит пример, который демонстрирует применение элементов управления и жестов.

  • UiSettingsDemoActivity: настройка возможностей пользовательского интерфейса и жестов на карте.

Упрощенный режим для минимального пользовательского взаимодействия

Если вам необходима небольшая карта с минимальным взаимодействием, рассмотрите вариант использования упрощенного режима. Упрощенный режим предлагает битовое изображение карты в указанном местоположении и с определенным уровнем масштабирования. При этом пользователи не могут панорамировать и масштабировать карту, а жесты не работают. Подробнее…

Элементы управления пользовательского интерфейса

В API Карт предусмотрены встроенные элементы управления, сходные с теми, которые используются в приложении "Google Карты" для Android. Они отображаются и скрываются с помощью класса UiSettings, который можно получить из объекта GoogleMap с помощью метода GoogleMap.getUiSettings. Изменения, выполненные для этого класса, сразу же отображаются на карте. Пример использования этого класса представлен в образце приложения.

Кроме того, большинство из этих параметров можно настроить при создании карты с помощью атрибутов XML или класса GoogleMapOptions. Подробнее…

Все элементы управления имеют свою предопределенную позицию относительно края карты, однако их можно смещать, указывая поля для объекта GoogleMap.

Инструменты масштабирования

В API Карт встроены инструменты масштабирования, которые отображаются в правом нижнем углу карты. По умолчанию они включены, но их можно скрыть с помощью метода UiSettings.setZoomControlsEnabled(true).

Инструменты масштабирования

Компас

В API Карт предусмотрен значок компаса, который появляется в левом верхнем углу, если камера ориентирована в направлении, отличном от нуля, или имеет наклон, не равный нулю. Когда пользователь нажимает на компас, камера возвращается в положение, при котором направление и наклон равны нулю (ориентация по умолчанию), после чего компас скрывается. Если вы не хотите показывать компас в своем приложении, вызовите метод UiSettings.setCompassEnabled(boolean). Сделать так, чтобы он всегда был виден, нельзя.

Компас

Кнопка "Мое местоположение"

Кнопка "Мое местоположение" отображается в правом верхнем углу экрана, только если включен одноименный слой. Подробнее…

Кнопка

Выбор уровня

По умолчанию модуль выбора уровня (этажа) отображается по центру правого края экрана, когда пользователь просматривает схему здания. При отображении двух или более схем зданий модуль выбора уровня относится к тому зданию, которое в настоящий момент находится в фокусе, – как правило, ближайшее к центру экрана. Для каждого здания предусмотрен уровень, который показывается по умолчанию при первом появлении модуля на экране. Пользователи могут выбрать в модуле другой уровень.

Управление выбором уровня можно включить или отключить, вызвав метод GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(boolean).

Этот способ применяется для замены стандартного модуля выбора уровня на свой собственный.

Выбор уровня

Панель инструментов на карте

По умолчанию панель инструментов отображается в правом нижнем углу карты, когда пользователь касается маркера. Эта панель обеспечивает быстрый доступ пользователей к мобильному приложению "Google Карты".

Чтобы включить или отключить панель инструментов, вызовите метод UiSettings.setMapToolbarEnabled(boolean).

В упрощенном режиме панель инструментов сохраняется независимо от действий пользователя. На полностью интерактивной карте панель инструментов выдвигается, когда пользователь касается маркера, и снова убирается, когда маркер больше не находится в фокусе.

На этой панели расположены значки для доступа к представлению карты или запросу маршрута в мобильном приложении "Google Карты". Когда пользователь касается значка на панели инструментов, API создает объект Intent для запуска соответствующего объекта activity.

Панель инструментов на карте

На приведенном выше скриншоте панель инструментов отображается в правом нижнем углу карты. Значки представления карты и запроса маршрута (ни одного, один или оба) появляются на карте в зависимости от ее содержимого и при условии, что мобильное приложение "Google Карты" поддерживает соответствующий объект Intent.

Управление картой с помощью жестов

Карта, созданная с помощью Maps SDK for Android, поддерживает те же жесты, что и приложение "Google Карты". Тем не менее вам может потребоваться отключить некоторые из них, чтобы сохранить состояние карты. Масштабирование, панорамирование, наклон и направление камеры также можно задать программными средствами. Обратите внимание на то, что отключение поддержки пользовательских жестов никак не влияет на возможность программно менять позиционирование камеры.

Как и элементы управления интерфейса, жесты включаются и отключаются с помощью класса UiSettings, который можно получить из объекта GoogleMap, вызвав метод GoogleMap.getUiSettings. Внесенные в этот класс изменения сразу же отображаются на карте. Пример использования этого класса представлен в образце приложения (см. инструкции по установке).

Эти функции можно также настроить с помощью атрибутов XML или класса GoogleMapOptions. Подробнее…

Жесты масштабирования

Карты поддерживают следующие жесты масштабирования:

  • двойное нажатие (увеличивает масштаб на один уровень);
  • нажатие двумя пальцами (уменьшает масштаб на один уровень);
  • сведение и разведение двух пальцев;
  • двойное нажатие одним пальцем без отпускания с последующим движением пальца вверх или вниз по экрану (увеличивает или уменьшает масштаб).

Чтобы отключить поддержку жестов масштабирования, вызовите метод UiSettings.setZoomGesturesEnabled(boolean). Это никак не повлияет на возможность использовать инструменты управления масштабом карты.

Жесты прокрутки и панорамирования

Пользователь может прокручивать (панорамировать) карту, перетаскивая ее пальцем. Чтобы отключить поддержку этого жеста, вызовите метод UiSettings.setScrollGesturesEnabled(boolean).

Жесты наклона

Пользователь может менять угол наклона камеры, поместив на карту два пальца и перемещая их вверх или вниз по экрану. Чтобы отключить поддержку этого жеста, вызовите метод UiSettings.setTiltGesturesEnabled(boolean).

Жесты поворота

Пользователь может вращать камеру, поворачивая карту двумя пальцами. Чтобы отключить поддержку этого жеста, вызовите метод UiSettings.setRotateGesturesEnabled(boolean).