Maps SDK for Android può mostrare un'immagine bitmap di una mappa, offrendo all'utente un'interattività limitata. Questa è una mappa in modalità Lite.
Esempi di codice
Il repository ApiDemos su GitHub include esempi che mostrano l'utilizzo della modalità Lite:
- LiteDemoActivity - Java: le nozioni di base sull'utilizzo di una mappa in modalità Lite in Java
- LiteDemoActivity - Kotlin: le nozioni di base sull'utilizzo di una mappa in modalità Lite in Kotlin
- LiteListDemoActivity - Java: visualizzazione efficiente delle mappe in ListView utilizzando la modalità Lite in Java
- LiteListDemoActivity - Kotlin: visualizzazione efficiente delle mappe in ListView utilizzando la modalità Lite in Kotlin
Panoramica della modalità Lite
Una mappa in modalità Lite è un'immagine bitmap di una mappa in una posizione e con un livello di zoom specificati. 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 vuoi fornire un numero 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 accedere alla visualizzazione della mappa nell'app mobile 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 Google Maps Android completa. Puoi impostare un GoogleMap in modalità Lite nei seguenti modi:
- Come attributo XML per un
MapViewoMapFragment - Oppure 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 mappa o una richiesta di indicazioni stradali
Per impostazione predefinita, una barra degli strumenti in basso a destra sulla mappa contiene icone che consentono di accedere 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 eseguire l'override di questa impostazione 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
maggiori dettagli su queste due tecniche, consulta 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 utilizzi 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 vuoi mostrare il punto della mia posizione sulla mappa in modalità Lite e utilizzare l'origine località predefinita, devi chiamare
onResume()eonPause(), perché l'origine località verrà aggiornata solo tra queste chiamate. Se utilizzi la tua origine località, 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? Sì
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 | Supportata? Sì
La funzionalità della modalità Lite per le forme corrisponde all'API completa. |
| Proiezione | Supportata? Sì
La funzionalità della modalità Lite per Projection corrisponde all'API completa. |
| La mia posizione | Supportata? Sì
La funzionalità della modalità Lite per il livello My Location corrisponde all'API completa. |
| Spaziatura interna della mappa | Supportata? Sì
Il supporto della modalità Lite per la spaziatura interna della mappa corrisponde all'API completa. |
| Finestre informative | Supportata? Sì
Se imposti la proprietà title() di un indicatore, quando l'utente tocca l'indicatore viene visualizzata la finestra informativa predefinita. Puoi mostrare la finestra informativa
in modo programmatico chiamando showInfoWindow() sul marker.
Puoi anche creare finestre informative personalizzate tramite l'interfaccia InfoWindowAdapter. |
| Stili di mappa base personalizzati | Supportata? In parte
Maps SDK for Android supporta lo stile personalizzato della mappa base. La modalità Lite supporta solo lo stile personalizzato basato su JSON, non lo stile basato su cloud, che richiede un ID mappa per eseguire il rendering di una mappa con stile.
La modalità Lite non supporta nemmeno l'impostazione della combinazione di colori della mappa per l'utilizzo della modalità Buio.
|
| Indicatori | Supportata? In parte
Puoi aggiungere un indicatore e rispondere a un evento di clic. Puoi anche aggiungere icone di indicatori personalizzate. Non è possibile rendere trascinabile un indicatore. Gli indicatori su una mappa in modalità Lite sono piatti e non possono essere ruotati. |
| Posizione, zoom e animazione della fotocamera | Supportata? In parte
Puoi impostare il target e lo zoom della videocamera, ma non l'inclinazione o l'orientamento.
In modalità Lite, il livello di zoom viene arrotondato al numero intero più vicino.
La chiamata a La chiamata a |
| Mappare gli eventi | Supportata? In parte
La modalità Lite supporta Per disattivare gli eventi di clic su una mappa in modalità Lite, puoi chiamare
Per maggiori dettagli, consulta la documentazione sugli 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 lo farà. 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 avrà alcun effetto. |
| Street View | Supportata? No
Street View non è supportato in modalità Lite. |