Un renderer delle mappe aggiornato è disponibile a partire dalla versione 18.2.0 di Maps SDK for Android. Questo renderer apporta molti miglioramenti, tra cui il supporto per la Personalizzazione delle mappe basata su cloud.
Il nuovo renderer offre i seguenti vantaggi:
- Le funzionalità Personalizzazione delle mappe basata su cloud sono disponibili con il nuovo renderer.
- Nel nuovo renderer sono disponibili personalizzazioni avanzate di Polyline.
- Carico di rete, domanda di elaborazione e consumo di memoria ridotti.
- Gestione dei gesti migliorata per animazioni migliori, panoramica e zoom più fluidi.
- Transizioni più fluide ed etichette sulla mappa posizionate in modo chiaro.
- Un'esperienza utente più stabile e migliorata.
Pianificazione dell'implementazione
A marzo 2024, Google ha iniziato ad aggiornare automaticamente tutte le app di cui è stato eseguito il deployment su un dispositivo in modo che utilizzino il renderer aggiornato. Nei prossimi mesi, gli aggiornamenti automatici verranno eseguiti in modo incrementale in base al dispositivo, il che significa che i dispositivi degli utenti finali verranno aggiornati in momenti diversi durante il periodo di aggiornamento.
Gli aggiornamenti automatici si applicano a tutte le app in esecuzione su dispositivi che soddisfano i requisiti minimi dei dispositivi, indipendentemente dalla versione dell'SDK Maps per Android utilizzata dall'app.
Gli aggiornamenti automatici non si applicano a:
App già aggiornate per l'utilizzo del renderer aggiornato.
App per le quali l'upgrade è stato esplicitamente disattivato.
App in esecuzione su dispositivi che non soddisfano i requisiti minimi dei dispositivi.
Che cosa succede quando cambia il renderer predefinito?
Il renderer predefinito è diventato il renderer aggiornato con la versione 18.2.0 di Maps SDK for Android. Per sfruttare il renderer aggiornato, puoi creare nuove app o ricreare quelle esistenti utilizzando la nuova versione dell'SDK. In alternativa, puoi attendere che l'app di cui hai eseguito il deployment venga aggiornata automaticamente da Google.
Dopo l'aggiornamento, l'app può sfruttare tutte le nuove funzionalità e tutti i nuovi vantaggi disponibili nel renderer aggiornato.
Tuttavia, se decidi di disattivare la modifica, la tua app continuerà a utilizzare il renderer legacy. Consulta Disattivazione dell'utilizzo del renderer aggiornato per un esempio di codice sulla modalità di disattivazione.
Dispositivi supportati
L'aggiornamento automatico si applica a tutti i dispositivi che soddisfano questi criteri, indipendentemente dalla versione di Maps SDK for Android utilizzata dall'app:
- Android 5.0 (livello API 21) o versioni successive
- Utilizzo di Google Play Services versione 21.39.14 o successive
I dispositivi che utilizzano Android 4.4W (livello API 20) e versioni precedenti o che utilizzano la versione 21.39.13 di Google Play Services o versioni precedenti continuano a utilizzare il renderer precedente.
Disattiva l'utilizzo del renderer aggiornato
Se necessario, puoi disattivare esplicitamente l'utilizzo del renderer aggiornato per utilizzare il renderer precedente nell'app.
Per disattivare la funzionalità:
Esegui l'upgrade di Maps SDK per Android alla versione 18.0 o successiva.
Aggiorna il codice per importare esplicitamente MapsInitializer e MapsInitializer.Renderer.
Aggiorna il codice per richiamare
MapsInitializer.initialize()
, passandoRenderer.LEGACY
per la disattivazione e l'utilizzo del renderer precedente.Utilizza OnMapsSdkInitializedCallback per determinare quale versione del renderer è stata restituita.
Il codice deve chiamare
MapsInitializer.initialize()
prima della creazione di qualsiasi elemento MapView,
MapFragment
o SupportMapFragment. Ti consigliamo di chiamare questa funzionalità in onCreate
per l'applicazione o l'attività della tua app prima che ne venga impostata la visualizzazione dei contenuti.
L'esempio seguente mostra come chiamare MapsInitializer.initialize()
per
disattivare l'utilizzo del renderer delle 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; } } }