A partire dalla versione 18.2.0 dell'SDK Maps per Android è disponibile un renderer della mappa aggiornato. Questo renderer introduce molti miglioramenti, tra cui il supporto dello stile delle mappe basato sul cloud.
Il nuovo renderer offre i seguenti vantaggi:
- Le funzionalità di Personalizzazione delle mappe basata su cloud sono disponibili con il nuovo renderer.
- Personalizzazioni avanzate delle polilinee sono disponibili con il nuovo renderer.
- Riduzione del carico di rete, della richiesta di elaborazione e del consumo di memoria.
- Gestione dei gesti migliorata per animazioni migliori, panoramica e zoom più fluidi.
- Transizioni più fluide ed etichette della mappa posizionate in modo chiaro.
- Un'esperienza utente più stabile e migliorata.
Stato dell'aggiornamento automatico
A marzo 2024, Google ha iniziato ad aggiornare automaticamente tutte le app implementate in modo che utilizzino il renderer aggiornato. Gli aggiornamenti automatici sono stati applicati a tutte le app in esecuzione sui dispositivi che soddisfano i requisiti minimi del dispositivo, indipendentemente dalla versione dell'SDK Maps per Android utilizzata dall'app. L'implementazione è ora completata.
Gli aggiornamenti automatici non sono stati applicati a:
App che sono già state aggiornate per utilizzare il renderer aggiornato.
App che hanno disattivato esplicitamente l'upgrade.
App in esecuzione su dispositivi che non soddisfano i requisiti minimi del dispositivo.
Dispositivi supportati
Per utilizzare il renderer della mappa aggiornato, i dispositivi devono soddisfare i seguenti criteri:
- Android 5.0 (livello API 21) o versioni successive
- Utilizzo di Google Play Services 21.39.14 o versioni successive
I dispositivi che utilizzano Android 4.4W (livello API 20) e versioni precedenti o Google Play Services versione 21.39.13 o precedenti continuano a utilizzare il renderer legacy.
Disattivare l'utilizzo del renderer aggiornato
Se necessario, puoi disattivare esplicitamente l'utilizzo del renderer aggiornato per utilizzare il renderer precedente nella tua app.
Per disattivare la funzionalità:
Esegui l'upgrade di Maps SDK for Android alla versione 18.0 o successive.
Aggiorna il codice per importare esplicitamente MapsInitializer e MapsInitializer.Renderer.
Aggiorna il codice per chiamare
MapsInitializer.initialize()
, passandoRenderer.LEGACY
per disattivare e utilizzare il renderer legacy.Utilizza OnMapsSdkInitializedCallback per determinare quale versione del renderer è stata restituita.
Il codice deve chiamare
MapsInitializer.initialize()
prima che venga creato
MapView,
MapFragment,
o
SupportMapFragment. Ti consigliamo di chiamare questo metodo in onCreate
per l'applicazione o l'attività della tua app, prima di impostare la visualizzazione dei contenuti.
Il seguente esempio mostra come chiamare MapsInitializer.initialize()
per disattivare l'utilizzo del renderer di mappe precedente.
Kotlin
import com.google.android.gms.maps.MapsInitializer import com.google.android.gms.maps.MapsInitializer.Renderer import com.google.android.gms.maps.OnMapsSdkInitializedCallback internal class MapRendererOptInApplication : Application(), OnMapsSdkInitializedCallback { override fun onCreate() { super.onCreate() MapsInitializer.initialize(applicationContext, Renderer.LEGACY, this) } override fun onMapsSdkInitialized(renderer: MapsInitializer.Renderer) { when (renderer) { Renderer.LATEST -> Log.d("MapsDemo", "The latest version of the renderer is used.") Renderer.LEGACY -> Log.d("MapsDemo", "The legacy version of the renderer is used.") } } }
Java
import com.google.android.gms.maps.MapsInitializer; import com.google.android.gms.maps.MapsInitializer.Renderer; import com.google.android.gms.maps.OnMapsSdkInitializedCallback; class MapRendererOptInApplication extends Application implements OnMapsSdkInitializedCallback { @Override public void onCreate() { super.onCreate(); MapsInitializer.initialize(getApplicationContext(), Renderer.LEGACY, this); } @Override public void onMapsSdkInitialized(MapsInitializer.Renderer renderer) { switch (renderer) { case LATEST: Log.d("MapsDemo", "The latest version of the renderer is used."); break; case LEGACY: Log.d("MapsDemo", "The legacy version of the renderer is used."); break; } } }