Modo Lite

O SDK do Maps para Android pode veicular uma imagem em bitmap de um mapa, oferecendo interações simples ao usuário. Isso é chamado de Modo Lite.

Exemplos de código

O repositório ApiDemos no GitHub inclui exemplos que demonstram o uso do Modo Lite:

Visão geral do Modo Lite

O Modo Lite mostra uma imagem em bitmap do mapa com um local e nível de zoom especificados. Ele é compatível com todos os tipos de mapas (normal, híbrido, satélite, terreno) e um subconjunto das funções oferecidas pela API completa. Esse modo é útil quando você quer disponibilizar vários mapas em um fluxo ou um mapa muito pequeno para aceitar interações complexas.

Os usuários não podem alterar nem mover o zoom do mapa. Os ícones integrados permitem que os usuários visualizem o mapa no app Google Maps para dispositivos móveis e solicitem rotas.

Como adicionar um mapa no Modo Lite

O Modo Lite usa as mesmas classes e interfaces que a API Google Maps Android completa. Você pode definir um GoogleMap nesse modo das seguintes maneiras:

  • Como um atributo XML para uma MapView ou um MapFragment
  • No objeto GoogleMapOptions

Como um atributo XML para uma MapView ou um 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"/>

No objeto GoogleMapOptions

Kotlin



val options = GoogleMapOptions()
    .liteMode(true)

      

Java


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

      

Para saber como definir o estado inicial do mapa, consulte o guia sobre o objeto "map".

Intents para abrir uma visualização de mapa ou solicitar rotas

Por padrão, uma barra de ferramentas no canto inferior direito inclui ícones que dão acesso a uma visualização de mapa ou uma solicitação de rotas no app Google Maps para dispositivos móveis. Se você quiser desativar essa barra, chame UiSettings.setMapToolbarEnabled(false). Para mais detalhes, consulte a documentação da barra de ferramentas.

Além disso, quando um usuário toca no mapa, a API abre o app Google Maps para dispositivos móveis por padrão. Você pode modificar esse comportamento usando GoogleMap.setOnMapClickListener() para definir seu próprio listener. Se quiser desativar os eventos de clique, chame setClickable() na visualização que contém a MapView ou o MapFragment. Para ver detalhes sobre essas duas técnicas, consulte a documentação de eventos.

Eventos de ciclo de vida

Ao usar a API no modo totalmente interativo, os usuários da classe MapView precisam encaminhar todos os métodos de ciclo de vida da atividade para os métodos correspondentes na classe MapView. Exemplos de métodos desse tipo incluem onCreate(), onDestroy(), onResume() e onPause().

Ao usar a classe MapView no Modo Lite, o encaminhamento dos eventos de ciclo de vida é opcional, exceto nas situações a seguir:

  • É obrigatório chamar onCreate(). Caso contrário, nenhum mapa será exibido.
  • Se quiser mostrar o ponto "Meu local" no mapa no Modo Lite e usar a origem padrão, você precisará chamar onResume() e onPause(), porque a origem só será atualizada entre essas chamadas. Se você utilizar uma origem própria, não será necessário chamar esses dois métodos.

Recursos compatíveis da API

Na tabela a seguir, descrevemos o comportamento de um mapa no Modo Lite para cada funcionalidade da API. Se um app chamar um método não compatível com esse modo, a API exibirá uma mensagem de aviso.

Funcionalidade
Tipos de mapa
Permitida? Sim
Os seguintes tipos de mapa estão disponíveis via GoogleMapOptions.mapType() e GoogleMap.setMapType(): MAP_TYPE_NORMAL, MAP_TYPE_SATELLITE, MAP_TYPE_TERRAIN, MAP_TYPE_HYBRID, MAP_TYPE_NONE.
Polilinhas, polígonos, círculos
Permitida? Sim
A funcionalidade do Modo Lite para formas é a mesma da API completa.
Projeção
Permitida? Sim
A funcionalidade do Modo Lite para projeções é a mesma da API completa.
Meu local
Permitida? Sim
A funcionalidade do Modo Lite para a camada My Location é a mesma da API completa.
Padding do mapa
Permitida? Sim
O suporte do Modo Lite para o padding do mapa é o mesmo da API completa.
Janelas de informações
Permitida? Sim
Se você definir o title() de um marcador, a janela de informações padrão aparecerá quando o usuário tocar nele. É possível mostrar essa janela programaticamente chamando showInfoWindow() no marcador. Você também pode criar janelas personalizadas desse tipo com a interface InfoWindowAdapter.
Estilos personalizados de mapa básico
Permitida? Parcialmente
O SDK do Maps para Android é compatível com os estilos personalizados do Mapa básico. O Modo Lite oferece suporte apenas a estilos personalizados com base em JSON, e não na nuvem, que exigem um ID de mapa para renderizar um mapa estilizado.
Marcadores
Permitida? Parcialmente
Você pode adicionar um marcador, responder a um evento de clique e incluir ícones de marcadores personalizados. Não é possível tornar um marcador arrastável. Os marcadores em um mapa no Modo Lite são planos e não podem ser girados.
Posição, zoom e animação da câmera
Permitida? Parcialmente

Você pode definir o alvo e zoom da câmera, mas não a inclinação ou a direção. No Modo Lite, o nível de zoom é arredondado para o número inteiro mais próximo. Chame GoogleMap.moveCamera() se quiser receber outra imagem do mapa no Modo Lite. Para mais informações sobre como configurar e usar a câmera, consulte a seção Alterar a visualização.

Chamar GoogleMap.animateCamera() não iniciará a animação de movimento da câmera. A visualização da câmera se moverá instantaneamente para a nova posição.

Eventos do mapa
Permitida? Parcialmente

O Modo Lite é compatível com GoogleMap.setOnMapClickListener() e GoogleMap.setOnMapLongClickListener().

Para desativar os eventos de clique em um mapa no Modo Lite, você pode chamar setClickable() na visualização que contém a MapView ou o MapFragment. Isso será útil, por exemplo, ao exibir mapas com uma visualização em lista, quando você quer fazer o evento de clique invocar uma ação não relacionada ao mapa.

Para ver detalhes, consulte a documentação dos eventos.

Mapas internos e edifícios
Permitida? Não
O Modo Lite mostrará os mesmos blocos que a API Maps Static. Isso significa que a planta baixa interna será exibida se estiver incorporada ao bloco padrão. Caso contrário, ela não aparecerá. Além disso, não é possível alterar o nível exibido nem usar um seletor de nível.
Camada de trânsito
Permitida? Não
GoogleMap.setTrafficEnabled() não é compatível com o Modo Lite.
Sobreposições de solo
Permitida? Não
GoogleMap.addGroundOverlay() não é compatível com o Modo Lite.
Sobreposições de blocos
Permitida? Não
GoogleMap.addTileOverlay() não é compatível com o Modo Lite.
Gestos
Permitida? Não
O Modo Lite não é compatível com gestos. Ativar e desativar gestos não terá efeito algum.
Street View
Permitida? Não
O Street View não funciona no Modo Lite.