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

Maps SDK for Android может отправлять битовое изображение карты. В этом случае пользователям доступны не все интерактивные функции. Такой режим называется упрощенным.

Примеры кода

Репозиторий ApiDemos в GitHub содержит примеры, демонстрирующие использование упрощенного режима.

  • LiteDemoActivity: основы использования карты в упрощенном режиме.
  • LiteListDemoActivity: оптимальное отображение карт в ListViews при помощи упрощенного режима.

Обзор упрощенного режима

В упрощенном режиме карта представляет собой битовое изображение определенного местоположения с указанным масштабом. Упрощенный режим поддерживает все типы карт (стандартные, гибридные, спутниковые, карты рельефа) и частичный набор функций, предоставляемых полным API. Этот режим применяется для предоставления нескольких карт в потоке или карты, которая слишком мала для реального взаимодействия.

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

Как добавить карту в упрощенном режиме

В упрощенном режиме используются те же классы и интерфейсы, что и в полнофункциональном интерфейсе Google Maps Android API. Упрощенный режим в GoogleMap можно установить одним из двух способов:

  • Добавить атрибут XML в MapView или MapFragment.
  • Добавить атрибут в объект GoogleMapOptions.

Пример с атрибутом в 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

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

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

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

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

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

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

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

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