Modalità Lite

Maps SDK for Android può mostrare un'immagine bitmap di una mappa, offrendo all'utente un'interattività limitata. Questa mappa viene 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 specificati. La modalità lite supporta tutti i tipi di mappe (normale, ibrida, satellitare, rilievi) e un sottoinsieme delle funzionalità fornite dall'API completa. La modalità lite è utile quando vuoi fornire una serie di mappe in uno stream o una mappa troppo piccola per supportare un'interazione significativa.

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

Aggiungere una mappa in modalità lite

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

  • Come attributo XML per un MapView o MapFragment
  • Nell'oggetto GoogleMapOptions

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

Nell'oggetto GoogleMapOptions

Kotlin

val options = GoogleMapOptions()
    .liteMode(true)

      

Java

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

      

Per informazioni dettagliate sull'impostazione dello stato iniziale della mappa, consulta 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 forniscono l'accesso a una visualizzazione della mappa o a una richiesta di indicazioni stradali nell'app mobile 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 Google Maps. Puoi sostituire questo comportamento utilizzando GoogleMap.setOnMapClickListener() per impostare il tuo listener. Puoi anche disattivare gli eventi di clic sulla mappa chiamando setClickable() nella visualizzazione che contiene MapView o MapFragment. Per informazioni dettagliate su queste due tecniche, consulta la documentazione relativa agli 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 utilizzi la classe MapView in modalità lite, l'inoltro degli eventi del ciclo di vita è facoltativo, tranne nelle seguenti situazioni:

  • È obbligatorio chiamare onCreate(), altrimenti non verrà visualizzata alcuna mappa.
  • Se vuoi mostrare il punto La mia posizione sulla mappa in modalità Lite e utilizzare l'origine della località predefinita, dovrai chiamare onResume() e onPause(), perché l'origine della posizione verrà aggiornata solo tra queste chiamate. Se utilizzi la tua origine della posizione, non è necessario chiamare questi due metodi.

Funzionalità API supportate

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

Funzionalità
Tipi di mappe
Supportata?
I seguenti tipi di mappe 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
Supportata?
La funzionalità della modalità lite per forme corrisponde all' API completa.
Proiezione
Supportata?
La funzionalità della modalità lite per Proiezione corrisponde all'API completa.
La mia posizione
Supportata?
La funzionalità della modalità lite per il livello La mia posizione corrisponde all'API completa.
Spaziatura interna della mappa
Supportata?
Il supporto della modalità lite per la spaziatura interna della mappa corrisponde all'API completa.
Finestre informative
Supportata?
Se imposti title() di un indicatore, la finestra informativa predefinita verrà visualizzata quando l'utente tocca l'indicatore. Puoi mostrare la finestra informativa in modo programmatico chiamando showInfoWindow() sull'indicatore. Puoi anche creare finestre informative personalizzate tramite l' InfoWindowAdapter interfaccia.
Stili di mappe base personalizzati
Supportata? Parzialmente
Maps SDK for Android supporta la personalizzazione degli stili della mappa base. La modalità lite supporta solo la personalizzazione degli stili basata su JSON, non quella basata sul cloud, che richiede un ID mappa per eseguire il rendering di una mappa con stili. La modalità Lite non supporta nemmeno l'impostazione della combinazione di colori della mappa per utilizzare la modalità Buio.
Indicatori
Supportata? Parzialmente
Puoi aggiungere un indicatore e rispondere a un evento di clic. Puoi anche aggiungere icone di indicatori personalizzate. Non è possibile rendere un indicatore trascinabile. Gli indicatori su una mappa in modalità lite sono piatti e non possono essere ruotati.
Posizione, zoom e animazione della videocamera
Supportata? Parzialmente

Puoi impostare la destinazione e lo zoom della videocamera, ma non l'inclinazione o la direzione. Il livello di zoom viene arrotondato al numero intero più vicino in modalità lite. La chiamata a GoogleMap.moveCamera() ti fornirà un'altra immagine della mappa in modalità lite. Per ulteriori informazioni sull'impostazione e la manipolazione della videocamera, consulta Modificare la visualizzazione.

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

Eventi della mappa
Supportata? 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. Questa opzione è 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 relativa agli eventi.

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