Упрощенный режим

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, но не поддерживает облачные стили, требующие указать идентификатор карты.
Маркеры
Поддерживается? Частично
Вы можете добавить маркер, который будет реагировать на событие клика. Также можно добавить собственные значки маркеров. Маркер нельзя сделать перетаскиваемым. В упрощенном режиме маркеры плоские и их нельзя поворачивать.
Положение камеры, масштаб и анимация
Поддерживается? Частично

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

Вызов метода GoogleMap.animateCamera() не приведет к анимации движения камеры. Камера сразу же переместится на новое место.

События карт
Поддерживается? Частично

Упрощенный режим поддерживает GoogleMap.setOnMapClickListener() и GoogleMap.setOnMapLongClickListener().

Чтобы отключить события кликов на карте в упрощенном режиме, вызовите метод setClickable() в представлении, которое содержит MapView или MapFragment. Это применяется, например, при отображении одной или нескольких карт в представлении в виде списка, когда вам нужно, чтобы клик вызывал действие, не имеющее отношения к карте.

Дополнительную информацию можно найти в документе о событиях.

Схемы зданий и строения
Поддерживается? Нет
В упрощенном режиме отображаются те же фрагменты карты, что и в Maps Static API. Это означает, что если план здания встроен во фрагмент карты, используемый по умолчанию, то он будет отображаться, а в противном случае – нет. Более того, вы не сможете изменить отображаемый уровень или использовать модуль выбора уровня.
Слой "Пробки"
Поддерживается? Нет
Упрощенный режим не поддерживает GoogleMap.setTrafficEnabled().
Наземные наложения
Поддерживается? Нет
Упрощенный режим не поддерживает GoogleMap.addGroundOverlay().
Наложения фрагментов карты
Поддерживается? Нет
Упрощенный режим не поддерживает GoogleMap.addTileOverlay().
Жесты
Поддерживается? Нет
Упрощенный режим не поддерживает жесты. Включение и отключение жестов ни на что не влияет.
Просмотр улиц
Поддерживается? Нет
Упрощенный режим не поддерживает Просмотр улиц.