С помощью 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)
.
![Инструменты масштабирования в правом нижнем углу Инструменты масштабирования](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/documentation/android-sdk/images/zoomcontrols.png?authuser=5&hl=ru)
Компас
В Maps API предусмотрен значок компаса, который появляется в левом верхнем углу, если камера ориентирована в направлении, отличном от нуля, или имеет наклон, не равный нулю. Когда пользователь нажимает на компас, камера возвращается в положение, при котором направление и наклон равны нулю (ориентация по умолчанию), после чего компас скрывается. Если вы не хотите показывать компас в своем приложении, вызовите метод UiSettings.setCompassEnabled(boolean)
.
Сделать так, чтобы он всегда был виден, нельзя.
![Компас в левом верхнем углу Компас](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/documentation/android-sdk/images/compass.png?authuser=5&hl=ru)
Кнопка "Мое местоположение"
Кнопка "Мое местоположение" отображается в правом верхнем углу экрана, только если включен одноименный слой. Подробнее…
![Кнопка "Мое местоположение" в правом верхнем углу Кнопка "Мое местоположение"](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/documentation/android-sdk/images/mylocationbutton.png?authuser=5&hl=ru)
Выбор уровня
По умолчанию модуль выбора уровня (этажа) отображается по центру правого края экрана, когда пользователь просматривает схему здания. При отображении двух или более схем зданий модуль выбора уровня относится к тому зданию, которое в настоящий момент находится в фокусе, – как правило, ближайшее к центру экрана. Для каждого здания предусмотрен уровень, который показывается по умолчанию при первом появлении модуля на экране. Пользователи могут выбрать в модуле другой уровень.
Управление выбором уровня можно включить или отключить, вызвав метод GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(boolean)
.
Этот способ применяется для замены стандартного модуля выбора уровня на свой собственный.
![Инструмент выбора уровня в правой части экрана по центру. Выбор уровня](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/documentation/android-sdk/images/levelpicker.png?authuser=5&hl=ru)
Панель инструментов на карте
По умолчанию панель инструментов появляется в правом нижнем углу карты, когда пользователь касается маркера. Эта панель обеспечивает быстрый доступ пользователей к мобильному приложению "Google Карты".
Чтобы включить или отключить панель инструментов, вызовите метод UiSettings.setMapToolbarEnabled(boolean)
.
В упрощенном режиме панель инструментов сохраняется независимо от действий пользователя. На полностью интерактивной карте панель инструментов выдвигается, когда пользователь касается маркера, и снова убирается, когда маркер больше не находится в фокусе.
На этой панели расположены значки для доступа к представлению карты или запросу маршрута в мобильном приложении "Google Карты". Когда пользователь касается значка на панели инструментов, API создает объект Intent для запуска соответствующего объекта activity.
![Панель инструментов в правой нижней части экрана Панель инструментов на карте](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/documentation/android-sdk/images/intents.png?authuser=5&hl=ru)
На приведенном выше скриншоте панель инструментов отображается в правом нижнем углу карты. Значки представления карты и запроса маршрута (ни одного, один или оба) появляются на карте в зависимости от ее содержимого и при условии, что мобильное приложение "Google Карты" поддерживает полученный объект Intent.
Управление картой с помощью жестов
Карта, созданная с помощью Maps SDK для Android, поддерживает те же жесты, что и приложение "Google Карты". Тем не менее вам может потребоваться отключить некоторые из них, чтобы сохранить состояние карты. Масштабирование, панорамирование, наклон и направление камеры также можно задать программными средствами. Обратите внимание на то, что отключение поддержки пользовательских жестов никак не влияет на возможность программно менять позиционирование камеры.
Как и элементы управления интерфейса, жесты включаются и отключаются с помощью класса UiSettings
, который можно получить из объекта GoogleMap
, вызвав метод GoogleMap.getUiSettings
. Внесенные в этот класс изменения сразу же отображаются на карте. Пример использования этого класса представлен в образце приложения (см. инструкции по установке).
Эти функции можно также настроить при создании карты с помощью атрибутов XML или класса GoogleMapOptions
.
Подробнее…
Жесты масштабирования
Карты поддерживают следующие жесты масштабирования:
- двойное нажатие (увеличивает масштаб на один уровень);
- нажатие двумя пальцами (уменьшает масштаб на один уровень);
- сведение и разведение двух пальцев;
- двойное нажатие одним пальцем без отпускания с последующим движением пальца вверх или вниз по экрану (увеличивает или уменьшает масштаб).
Чтобы отключить поддержку жестов масштабирования, вызовите метод UiSettings.setZoomGesturesEnabled(boolean)
. Это никак не повлияет на возможность использовать инструменты управления масштабом карты.
Жесты прокрутки и панорамирования
Пользователь может прокручивать (панорамировать) карту, перетаскивая ее пальцем.
Чтобы отключить поддержку этого жеста, вызовите метод UiSettings.setScrollGesturesEnabled(boolean)
.
Жесты наклона
Пользователь может менять угол наклона камеры, поместив на карту два пальца и перемещая их вверх или вниз по экрану. Чтобы отключить поддержку этого жеста, вызовите метод UiSettings.setTiltGesturesEnabled(boolean)
.
Жесты поворота
Пользователь может вращать камеру, поворачивая карту двумя пальцами. Чтобы отключить поддержку этого жеста, вызовите метод UiSettings.setRotateGesturesEnabled(boolean)
.