Modo básico

El SDK de Maps para Android permite publicar una imagen de mapa de bits de un mapa y ofrecer interactividad limitada al usuario. Esto se conoce como un mapa en modo lite.

Muestras de código

El repositorio ApiDemos en GitHub incluye ejemplos que muestran el uso del modo lite:

Descripción general del modo lite

El modo lite muestra una imagen de mapa de bits correspondiente a un mapa de una ubicación determinada y con un nivel de zoom específico. Además, este modo es compatible con todos los tipos de mapa (normal, híbrido, satelital y de terreno), así como con un subconjunto de las funcionalidades proporcionadas por la API completa. Resulta útil cuando deseas proporcionar una serie de mapas en un flujo o un mapa demasiado pequeño como para admitir una interacción significativa.

Los usuarios que vean el mapa no podrán desplazarse lateralmente por él ni aplicarle zoom. Los íconos del mapa les brindan a los usuarios la posibilidad de ver el mapa en la app de Google Maps para dispositivos móviles y de solicitar instrucciones para llegar a un lugar.

Cómo agregar un mapa en el modo lite

El modo lite utiliza las mismas interfaces y clases que la API completa de Google Maps para Android. Puedes configurar un objeto GoogleMap en el modo lite de las siguientes maneras:

  • Mediante un atributo XML de un objeto MapView o MapFragment
  • Directamente en el objeto GoogleMapOptions

Mediante un atributo XML de un objeto MapView o 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"/>

Directamente en el objeto GoogleMapOptions

Kotlin



val options = GoogleMapOptions()
    .liteMode(true)

      

Java


GoogleMapOptions options = new GoogleMapOptions()
    .liteMode(true);

      

Para obtener detalles acerca de cómo configurar el estado inicial del mapa, consulta la guía sobre el objeto de mapa.

Intents para iniciar una vista de mapa o una solicitud de instrucciones sobre cómo llegar

De forma predeterminada, se muestra una barra de herramientas en la esquina inferior derecha del mapa con íconos que proporcionan acceso a una vista de mapa o a una solicitud de instrucciones sobre cómo llegar en la app de Google Maps para dispositivos móviles. Para inhabilitar la barra de herramientas, llama a UiSettings.setMapToolbarEnabled(false). Para obtener más detalles, consulta la documentación sobre la barra de herramientas.

También de forma predeterminada, cuando un usuario presiona el mapa, la API inicia la app de Google Maps para dispositivos móviles. Puedes anular esta función con GoogleMap.setOnMapClickListener() para configurar tu propio objeto de escucha. También puedes inhabilitar los eventos de clic en el mapa si llamas a setClickable() en la vista que contiene el objeto MapView o MapFragment. Para obtener más detalles sobre estas dos técnicas, consulta la documentación sobre eventos.

Eventos de ciclo de vida

Cuando se utiliza la API en el modo completamente interactivo, los usuarios de la clase MapView deben reenviar todos los métodos de ciclo de vida de la actividad a los métodos correspondientes de la clase MapView. Algunos ejemplos de métodos de ciclo de vida son onCreate(), onDestroy(), onResume() y onPause().

Cuando se utiliza la clase MapView en el modo lite, el reenvío de eventos de ciclo de vida es opcional, excepto en las siguientes situaciones:

  • Es obligatorio llamar a onCreate(). De lo contrario, no aparecerá ningún mapa.
  • Si deseas mostrar el punto de Mi ubicación en el mapa en el modo lite y utilizar la fuente de ubicación predeterminada, deberás llamar a onResume() y onPause(), ya que la fuente de ubicación solo se actualizará entre estas llamadas. Si utilizas tu propia fuente de ubicación, no es necesario llamar a estos dos métodos.

Funciones de API compatibles

En la siguiente tabla, se describe el comportamiento de un mapa en el modo lite para cada área de funcionalidades de la API. Si una app llama a un método que no es compatible en el modo lite, la API registrará un mensaje de advertencia.

Funcionalidad
Tipos de mapas
¿Compatible?
Los siguientes tipos de mapas están disponibles a través de GoogleMapOptions.mapType() y GoogleMap.setMapType(): MAP_TYPE_NORMAL, MAP_TYPE_SATELLITE, MAP_TYPE_TERRAIN, MAP_TYPE_HYBRID, MAP_TYPE_NONE
Polilíneas, polígonos y círculos
¿Compatible?
Las funcionalidades relacionadas con las formas en el modo lite son las mismas que las de la API completa.
Proyección
¿Compatible?
Las funcionalidades relacionadas con la proyección en el modo lite son las mismas que las de la API completa.
Mi ubicación
¿Compatible?
Las funcionalidades relacionadas con la capa Mi ubicación en el modo lite son las mismas que las de la API completa.
Mapas con padding
¿Compatible?
La compatibilidad de los mapas con padding en el modo lite es la misma que la de la API completa.
Ventanas de información
¿Compatible?
Si configuras el método title() de un marcador, aparecerá la ventana de información predeterminada cuando el usuario presione el marcador. Puedes mostrar la ventana de información de manera programática si llamas a showInfoWindow() en el marcador. También puedes crear ventanas de información personalizadas a través de la interfaz InfoWindowAdapter.
Diseños personalizados del mapa base
¿Compatible? En parte
El SDK de Maps para Android es compatible con los diseños personalizados del mapa base. El modo lite solo es compatible con el diseño personalizado basado en JSON, no con el diseño basado en Cloud, que requiere un ID de mapa para procesar un mapa con diseños.
Marcadores
¿Compatible? En parte
Puedes agregar un marcador y responder a un evento de clic. También puedes agregar íconos de marcadores personalizados. No es posible configurar un marcador para que sea arrastrable. En el modo lite, los marcadores del mapa son planos y no se pueden rotar.
Posición de la cámara, zoom y animación
¿Compatible? En parte

Puedes configurar el nivel de zoom y el objetivo de la cámara, pero no la inclinación ni el rumbo. En el modo lite, el nivel de zoom se redondea al valor entero más cercano. Si llamas a GoogleMap.moveCamera(), obtendrás otra imagen de mapa en el modo lite. Para obtener más información para configurar y manipular la cámara, consulta la página sobre cómo cambiar la vista.

Si llamas a GoogleMap.animateCamera(), no se animará el movimiento de la cámara, sino que la vista adoptará al instante la nueva posición.

Eventos de mapa
¿Compatible? En parte

El modo lite es compatible con los métodos GoogleMap.setOnMapClickListener() y GoogleMap.setOnMapLongClickListener().

Para inhabilitar los eventos de clic en un mapa en el modo lite, llama a setClickable() en la vista que contenga el objeto MapView o MapFragment. Esto resulta útil, por ejemplo, al mostrar uno o varios mapas en una vista de lista, en la que deseas que el evento de clic invoque una acción no relacionada con el mapa.

Para obtener más detalles, consulta la documentación sobre eventos.

Mapas de interiores y edificios
¿Compatible? No
El modo lite mostrará los mismos mosaicos que la API de Maps Static. Esto significa que el plano del interior del edificio aparecerá si se integra al mosaico predeterminado. De lo contrario, no aparecerá. Además, no puedes cambiar el piso que se muestra ni controlar un selector de pisos.
Capa de tráfico
¿Compatible? No
El modo lite no es compatible con el método GoogleMap.setTrafficEnabled().
Superposiciones de suelo
¿Compatible? No
El modo lite no es compatible con el método GoogleMap.addGroundOverlay().
Superposiciones de mosaicos
¿Compatible? No
El modo lite no es compatible con el método GoogleMap.addTileOverlay().
Gestos
¿Compatible? No
El modo lite no es compatible con los gestos. La habilitación o inhabilitación de los gestos no tendrá ningún efecto.
Street View
¿Compatible? No
El modo lite no es compatible con Street View.