Maps SDK для Android может отправлять битовое изображение карты. В этом случае пользователям доступны не все интерактивные функции. Такой режим называется упрощенным.
Примеры кода
Репозиторий ApiDemos в GitHub содержит примеры, демонстрирующие упрощенный режим.
- LiteDemoActivity (Java): основы работы с картой в упрощенном режиме с помощью Java.
- LiteDemoActivity (Kotlin): основы работы с картой в упрощенном режиме с помощью Kotlin.
- LiteListDemoActivity (Java): эффективное отображение карт в ListView в упрощенном режиме с помощью Java.
- LiteListDemoActivity (Kotlin): эффективное отображение карт в ListView в упрощенном режиме с помощью Kotlin.
Обзор упрощенного режима
В упрощенном режиме карта представляет собой битовое изображение определенного местоположения с указанным масштабом. Упрощенный режим поддерживает все типы карт (стандартные, гибридные, спутниковые, карты рельефа) и частичный набор функций, предоставляемых полным API. Этот режим применяется для предоставления нескольких карт в потоке или карты, которая слишком мала для реального взаимодействия.
При просмотре карты в упрощенном режиме пользователи не могут панорамировать ее и изменять ее масштаб. На карте есть значки, с помощью которых можно просматривать ее в мобильном приложении, а также прокладывать маршруты.
Добавление карты в упрощенном режиме
В упрощенном режиме используются те же классы и интерфейсы, что и в полнофункциональном интерфейсе Google Maps Android API. Упрощенный режим в GoogleMap
можно установить одним из двух способов:
- Добавить атрибут XML в
MapView
илиMapFragment
. - Добавить атрибут в объект
GoogleMapOptions
.
Пример с атрибутом XML в MapView
или MapFragment
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
android:name="com.google.android.gms.maps.MapFragment"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
map:cameraZoom="13"
map:mapType="normal"
map:liteMode="true"/>
Пример с использованием объекта GoogleMapOptions
Kotlin
val options = GoogleMapOptions() .liteMode(true)
Java
GoogleMapOptions options = new GoogleMapOptions() .liteMode(true);
Подробную информацию о том, как задать начальное состояние карты, вы найдете в руководстве по объектам.
Объекты Intent для запуска представления карты или запроса маршрутов
По умолчанию на панели инструментов в правом нижнем углу карты расположены значки для доступа к представлению карты или запросу маршрута в мобильном приложении "Google Карты". Вы можете отключить панель инструментов, вызвав UiSettings.setMapToolbarEnabled(false)
. Подробную информацию вы найдете в документации.
Кроме того, когда пользователь касается карты, по умолчанию API запускает мобильное приложение "Google Карты". Вы можете изменить это поведение, используя метод GoogleMap.setOnMapClickListener()
для установки собственного прослушивателя. Также вы можете отключить события кликов на карте, вызвав метод setClickable()
в представлении, которое содержит MapView
или MapFragment
. Дополнительные сведения об этих двух методах приведены в документации о событиях.
События в рамках жизненного цикла
При использовании API в полностью интерактивном режиме пользователи класса MapView
должны передавать все методы жизненного цикла операций соответствующим методам в классе MapView
. Примеры методов жизненного цикла: onCreate()
, onDestroy()
, onResume()
и onPause()
.
При использовании класса MapView
в упрощенном режиме передача событий жизненного цикла не обязательна, за исключением следующих ситуаций:
- Вызов метода
onCreate()
обязателен, иначе карта не отобразится. - Если вы хотите отобразить точку "Мое местоположение" на карте в упрощенном режиме и использовать источник местоположения по умолчанию, то вам необходимо вызвать методы
onResume()
иonPause()
, поскольку источник местоположения обновляется только между этими вызовами. Если вы используете собственный источник местоположения, эти два метода можно не вызывать.
Поддерживаемые функции API
В таблице ниже приводится описание поведения карты в упрощенном режиме для каждой области функциональных возможностей API. Если приложение вызовет метод, который не поддерживается в упрощенном режиме, API запишет сообщение с предупреждением.
Функции | |
---|---|
Типы карт | Поддерживается? Да
В GoogleMapOptions.mapType() и GoogleMap.setMapType() доступны следующие типы карт: MAP_TYPE_NORMAL , MAP_TYPE_SATELLITE , MAP_TYPE_TERRAIN , MAP_TYPE_HYBRID , MAP_TYPE_NONE . |
Ломаные линии, многоугольники, круги | Поддерживается? Да
Функциональные возможности в упрощенном режиме для фигур соответствуют полному API. |
Проекция | Поддерживается? Да
Функциональные возможности в упрощенном режиме для проекции соответствуют полному API. |
Мое местоположение | Поддерживается? Да
Функциональные возможности в упрощенном режиме для слоя "Мое местоположение" соответствуют полному API. |
Поля карты | Поддерживается? Да
Функциональные возможности в упрощенном режиме для полей карты соответствуют полному API. |
Информационные окна | Поддерживается? Да
Если для маркера было задано свойство title() , то при нажатии на маркер отобразится информационное окно по умолчанию. Это окно можно отобразить программным способом, вызвав для маркера метод showInfoWindow() .
Кроме того, вы можете создавать собственные информационные окна с помощью интерфейса InfoWindowAdapter . |
Пользовательские стили базовой карты | Поддерживается? Частично
Maps SDK для Android поддерживает собственные стили базовой карты. Упрощенный режим поддерживает собственные стили на базе JSON, но не поддерживает облачные стили, требующие указать идентификатор карты. |
Маркеры | Поддерживается? Частично
Вы можете добавить маркер, который будет реагировать на событие клика. Также можно добавить собственные значки маркеров. Маркер нельзя сделать перетаскиваемым. В упрощенном режиме маркеры плоские и их нельзя поворачивать. |
Положение камеры, масштаб и анимация | Поддерживается? Частично
Вы можете установить целевой объект и масштаб камеры, но не можете изменить ее наклон или направление.
В упрощенном режиме уровень масштабирования округляется до ближайшего целого значения.
Вызов Вызов метода |
События карт | Поддерживается? Частично
Упрощенный режим поддерживает Чтобы отключить события кликов на карте в упрощенном режиме, вызовите метод Дополнительную информацию можно найти в документе о событиях. |
Схемы зданий и строения | Поддерживается? Нет
В упрощенном режиме отображаются те же фрагменты карты, что и в Maps Static API.
Это означает, что если план здания встроен во фрагмент карты, используемый по умолчанию, то он будет отображаться, а в противном случае – нет. Более того, вы не сможете изменить отображаемый уровень или использовать модуль выбора уровня. |
Слой "Пробки" | Поддерживается? Нет
Упрощенный режим не поддерживает GoogleMap.setTrafficEnabled() . |
Наземные наложения | Поддерживается? Нет
Упрощенный режим не поддерживает GoogleMap.addGroundOverlay() . |
Наложения фрагментов карты | Поддерживается? Нет
Упрощенный режим не поддерживает GoogleMap.addTileOverlay() . |
Жесты | Поддерживается? Нет
Упрощенный режим не поддерживает жесты. Включение и отключение жестов ни на что не влияет. |
Просмотр улиц | Поддерживается? Нет
Упрощенный режим не поддерживает Просмотр улиц. |