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:
- LiteDemoActivity – Java: noções básicas de uso de um mapa no Modo Lite em Java
- LiteDemoActivity – Kotlin: noções básicas de uso de um mapa no Modo Lite em Kotlin
- LiteListDemoActivity – Java: como exibir mapas de maneira eficiente em ListViews usando o Modo Lite em Java
- LiteListDemoActivity – Kotlin: como exibir mapas de maneira eficiente em ListViews usando o Modo Lite em Kotlin
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 umMapFragment
- 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()
eonPause()
, 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 Chamar |
Eventos do mapa | Permitida? Parcialmente
O Modo Lite é compatível com Para desativar os eventos de clique em um mapa no Modo Lite, você pode chamar 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. |