С помощью Maps SDK для Android можно настраивать способ взаимодействия пользователей с картой, определив, какие из встроенных компонентов интерфейса будут отображаться на карте и какие жесты можно использовать.
Примеры кода
Репозиторий ApiDemos на сайте GitHub содержит пример, который демонстрирует применение элементов управления и жестов.
- UiSettingsDemoActivity: пример для Kotlin.
- UiSettingsDemoActivity: пример для Java.
Упрощенный режим для минимального пользовательского взаимодействия
Если вам необходима небольшая карта с минимальным взаимодействием, имеет смысл использовать упрощенный режим. В таком режиме карта представляет собой битовое изображение определенного местоположения с заданным масштабом. При этом пользователи не могут панорамировать и масштабировать карту, а жесты не работают. Подробнее…
Элементы управления пользовательского интерфейса
В Maps API предусмотрены встроенные элементы управления, сходные с теми, которые используются в приложении "Google Карты" для Android. Они отображаются и скрываются с помощью класса UiSettings
, который можно получить из объекта GoogleMap
, используя метод GoogleMap.getUiSettings
. Изменения, выполненные для этого класса, сразу же отображаются на карте. Пример использования этого класса представлен в образце приложения.
Кроме того, большинство из этих параметров можно настроить при создании карты с помощью атрибутов XML или класса GoogleMapOptions
. Подробнее…
У всех элементов управления интерфейса есть предопределенная позиция относительно края карты,
однако их можно переместить, указав поля для объекта GoogleMap
.
Инструменты масштабирования
В Maps API встроены инструменты масштабирования, которые находятся в правом нижнем углу карты. По умолчанию они отключены, но их можно включить с помощью метода UiSettings.setZoomControlsEnabled(true)
.
Компас
В Maps API предусмотрен значок компаса, который появляется в левом верхнем углу, если камера ориентирована в направлении, отличном от нуля, или имеет наклон, не равный нулю. Когда пользователь нажимает на компас, камера возвращается в положение, при котором направление и наклон равны нулю (ориентация по умолчанию), после чего компас скрывается. Если вы не хотите показывать компас в своем приложении, вызовите метод UiSettings.setCompassEnabled(boolean)
.
Сделать так, чтобы он всегда был виден, нельзя.
Кнопка "Мое местоположение"
Кнопка "Мое местоположение" отображается в правом верхнем углу экрана, только если включен одноименный слой. Подробнее…
Выбор уровня
По умолчанию модуль выбора уровня (этажа) отображается по центру правого края экрана, когда пользователь просматривает схему здания. При отображении двух или более схем зданий модуль выбора уровня относится к тому зданию, которое в настоящий момент находится в фокусе, – как правило, ближайшее к центру экрана. Для каждого здания предусмотрен уровень, который показывается по умолчанию при первом появлении модуля на экране. Пользователи могут выбрать в модуле другой уровень.
Управление выбором уровня можно включить или отключить, вызвав метод GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(boolean)
.
Этот способ применяется для замены стандартного модуля выбора уровня на свой собственный.
Панель инструментов на карте
По умолчанию панель инструментов появляется в правом нижнем углу карты, когда пользователь касается маркера. Эта панель обеспечивает быстрый доступ пользователей к мобильному приложению "Google Карты".
Чтобы включить или отключить панель инструментов, вызовите метод UiSettings.setMapToolbarEnabled(boolean)
.
В упрощенном режиме панель инструментов сохраняется независимо от действий пользователя. На полностью интерактивной карте панель инструментов выдвигается, когда пользователь касается маркера, и снова убирается, когда маркер больше не находится в фокусе.
На этой панели расположены значки для доступа к представлению карты или запросу маршрута в мобильном приложении "Google Карты". Когда пользователь касается значка на панели инструментов, API создает объект Intent для запуска соответствующего объекта activity.
На приведенном выше скриншоте панель инструментов отображается в правом нижнем углу карты. Значки представления карты и запроса маршрута (ни одного, один или оба) появляются на карте в зависимости от ее содержимого и при условии, что мобильное приложение "Google Карты" поддерживает полученный объект Intent.
Управление картой с помощью жестов
Карта, созданная с помощью Maps SDK для Android, поддерживает те же жесты, что и приложение "Google Карты". Тем не менее вам может потребоваться отключить некоторые из них, чтобы сохранить состояние карты. Масштабирование, панорамирование, наклон и направление камеры также можно задать программными средствами. Обратите внимание на то, что отключение поддержки пользовательских жестов никак не влияет на возможность программно менять позиционирование камеры.
Как и элементы управления интерфейса, жесты включаются и отключаются с помощью класса UiSettings
, который можно получить из объекта GoogleMap
, вызвав метод GoogleMap.getUiSettings
. Внесенные в этот класс изменения сразу же отображаются на карте. Пример использования этого класса представлен в образце приложения (см. инструкции по установке).
Эти функции можно также настроить при создании карты с помощью атрибутов XML или класса GoogleMapOptions
.
Подробнее…
Жесты масштабирования
Карты поддерживают следующие жесты масштабирования:
- двойное нажатие (увеличивает масштаб на один уровень);
- нажатие двумя пальцами (уменьшает масштаб на один уровень);
- сведение и разведение двух пальцев;
- двойное нажатие одним пальцем без отпускания с последующим движением пальца вверх или вниз по экрану (увеличивает или уменьшает масштаб).
Чтобы отключить поддержку жестов масштабирования, вызовите метод UiSettings.setZoomGesturesEnabled(boolean)
. Это никак не повлияет на возможность использовать инструменты управления масштабом карты.
Жесты прокрутки и панорамирования
Пользователь может прокручивать (панорамировать) карту, перетаскивая ее пальцем.
Чтобы отключить поддержку этого жеста, вызовите метод UiSettings.setScrollGesturesEnabled(boolean)
.
Жесты наклона
Пользователь может менять угол наклона камеры, поместив на карту два пальца и перемещая их вверх или вниз по экрану. Чтобы отключить поддержку этого жеста, вызовите метод UiSettings.setTiltGesturesEnabled(boolean)
.
Жесты поворота
Пользователь может вращать камеру, поворачивая карту двумя пальцами. Чтобы отключить поддержку этого жеста, вызовите метод UiSettings.setRotateGesturesEnabled(boolean)
.