Modalità Lite

L'SDK di Maps per Android può fornire un'immagine bitmap di una mappa, offrendo all'utente un'interattività limitata. Questa è chiamata mappa in modalità Lite.

Esempi di codice

Il repository ApiDemos su GitHub include esempi che mostrano l'utilizzo della modalità Lite:

Panoramica della modalità Lite

Una mappa in modalità Lite è un'immagine bitmap di una mappa in una posizione e a un livello di zoom specifici. La modalità Lite supporta tutti i tipi di mappa (normale, ibrida, satellitare, terreno) e un sottoinsieme delle funzionalità fornite dall'API completa. La modalità Lite è utile quando si desidera fornire un certo numero di mappe in un flusso o una mappa troppo piccola per supportare un'interazione significativa.

Gli utenti che visualizzano la mappa non possono eseguire lo zoom o la panoramica della mappa. Le icone sulla mappa consentono agli utenti di visualizzare la mappa nell'app mobile di Google Maps e di richiedere indicazioni stradali.

Aggiunta di una mappa in modalità Lite

La modalità Lite utilizza le stesse classi e interfacce dell'API completa di Google Maps per Android. Puoi impostare un GoogleMap in modalità Lite nei seguenti modi:

  • Come attributo XML per MapView o MapFragment
  • Oppure nell'oggetto GoogleMapOptions

Come attributo XML per un MapView o un 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"/>

Nell'oggetto GoogleMapOptions

Kotlin

val options = GoogleMapOptions()
    .liteMode(true)

      

Java

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

      

Per i dettagli sull'impostazione dello stato iniziale della mappa, consultare la guida all'oggetto mappa.

Intent per avviare una visualizzazione della mappa o una richiesta di indicazioni stradali

Per impostazione predefinita, una barra degli strumenti in basso a destra della mappa contiene icone che consentono di accedere a una visualizzazione della mappa o di richiedere indicazioni stradali nell'app mobile di Google Maps. Puoi disattivare la barra degli strumenti chiamando UiSettings.setMapToolbarEnabled(false). Per maggiori dettagli, consulta la documentazione della barra degli strumenti.

Inoltre, per impostazione predefinita, quando un utente tocca la mappa, l'API avvia l'app mobile di Google Maps. Puoi ignorare questa impostazione utilizzando GoogleMap.setOnMapClickListener() per impostare il tuo listener. È anche possibile disattivare gli eventi di clic sulla mappa, richiamando setClickable() nella vista che contiene MapView o MapFragment. Per i dettagli di queste due tecniche, consultare la documentazione sugli eventi.

Eventi del ciclo di vita

Quando utilizzi l'API in modalità completamente interattiva, gli utenti della classe MapView devono inoltrare tutti i metodi del ciclo di vita dell'attività ai metodi corrispondenti nella classe MapView. Esempi di metodi del ciclo di vita includono onCreate(), onDestroy(), onResume() e onPause().

Quando si utilizza la classe MapView in modalità Lite, l'inoltro degli eventi del ciclo di vita è facoltativo, ad eccezione delle seguenti situazioni:

  • È obbligatorio chiamare onCreate(), altrimenti non verrà visualizzata alcuna mappa.
  • Se desideri visualizzare il punto La mia posizione sulla mappa in modalità Lite e utilizzare la sorgente di posizione predefinita, dovrai chiamare onResume() e onPause(), perché la sorgente di posizione verrà aggiornata solo tra queste chiamate. Se si utilizza una propria fonte di posizione, non è necessario chiamare questi due metodi.

Funzionalità API supportate

La tabella seguente descrive il comportamento di una mappa in modalità Lite per ciascuna area della funzionalità API. Se un'app chiama un metodo non supportato in modalità Lite, l'API registrerà un messaggio di avviso.

Funzionalità
Tipi di mappe
Supportato?
I seguenti tipi di mappa sono disponibili tramite GoogleMapOptions.mapType() e GoogleMap.setMapType(): MAP_TYPE_NORMAL, MAP_TYPE_SATELLITE, MAP_TYPE_TERRAIN, MAP_TYPE_HYBRID, MAP_TYPE_NONE
Polilinee, poligoni, cerchi
Supportato?
La funzionalità della modalità Lite per le forme corrisponde a quella dell'API completa.
Projection
Supportato?
La funzionalità della modalità Lite per Projection corrisponde all'API completa.
La mia posizione
Supportato?
La funzionalità della modalità Lite per il livello La mia posizione corrisponde all'API completa.
Spaziatura interna della mappa
Supportato?
Il supporto della modalità Lite per il padding della mappa corrisponde all'API completa.
Finestre informative
Supportato?
Se imposti il title() di un indicatore, la finestra informativa predefinita viene visualizzata quando l'utente tocca l'indicatore. Puoi mostrare la finestra informativa in modo programmatico chiamando showInfoWindow() sul marcatore. Puoi anche creare finestre informative personalizzate tramite l'interfaccia InfoWindowAdapter.
Stili di mappa base personalizzati
Supportato? Parzialmente
Maps SDK for Android supporta la personalizzazione dello stile della mappa di base. La modalità Lite supporta solo la personalizzazione basata su JSON, non la personalizzazione basata su cloud, che richiede un ID mappa per il rendering di una mappa con stile. La modalità Lite non supporta nemmeno l'impostazione della combinazione di colori della mappa per utilizzare la modalità Buio.
Indicatori
Supportato? Parzialmente
Puoi aggiungere un indicatore e rispondere a un evento di clic. Puoi anche aggiungere icone di marker personalizzate. Non è possibile rendere trascinabile un indicatore. I marcatori su una mappa in modalità Lite sono piatti e non possono essere ruotati.
Posizione, zoom e animazione della videocamera
Supportato? Parzialmente

Puoi impostare il target e lo zoom della videocamera, ma non l'inclinazione o l'orientamento. Il livello di zoom viene arrotondato al numero intero più vicino in modalità Lite. Se chiami GoogleMap.moveCamera(), riceverai un'altra immagine della mappa in modalità Lite. Per ulteriori informazioni sull'impostazione e la manipolazione della videocamera, vedi Modificare la visualizzazione.

La chiamata a GoogleMap.animateCamera() non comporterà l'animazione del movimento della videocamera. La visualizzazione della videocamera si sposterà immediatamente nella nuova posizione.

Mappare gli eventi
Supportato? Parzialmente

La modalità Lite supporta GoogleMap.setOnMapClickListener() e GoogleMap.setOnMapLongClickListener().

Per disattivare gli eventi di clic su una mappa in modalità Lite, puoi chiamare setClickable() nella visualizzazione che contiene MapView o MapFragment. Ciò è utile, ad esempio, quando visualizzi una o più mappe in una visualizzazione elenco, in cui vuoi che l'evento di clic richiami un'azione non correlata alla mappa.

Per maggiori dettagli, consulta la documentazione sugli eventi.

Mappe di interni ed edifici
Supportato? No
La modalità Lite mostra le stesse tessere dell'API Maps Static. Ciò significa che se la planimetria interna è integrata nel riquadro predefinito, verrà visualizzata. In caso contrario, non verrà visualizzato. Inoltre, non puoi modificare il livello mostrato o manipolare un selettore di livello.
Livello del traffico
Supportato? No
GoogleMap.setTrafficEnabled() non è supportato in modalità Lite.
Sovrapposizioni di terreno
Supportato? No
GoogleMap.addGroundOverlay() non è supportato in modalità lite.
Overlay riquadro
Supportato? No
GoogleMap.addTileOverlay() non è supportato in modalità lite.
Gesti
Supportato? No
La modalità Lite non supporta i gesti. L'attivazione e la disattivazione dei gesti non avranno alcun effetto.
Street View
Supportato? No
Street View non è supportato in modalità Lite.