Un renderer di mappe aggiornato è disponibile a partire dalla versione 18.2.0 del Maps SDK per Android. Questo visualizzatore offre molti miglioramenti, tra cui il supporto per lo stile delle mappe basate su cloud.
Il nuovo visualizzatore offre i seguenti vantaggi:
- Personalizzazione delle mappe basata su cloud sono disponibili con il nuovo renderer.
- Le personalizzazioni avanzate dei polilinee sono disponibili con il nuovo visualizzatore.
- Riduzione del carico della rete, della domanda di elaborazione e del consumo di memoria.
- Gestione dei gesti migliorata per animazioni migliori, nonché panoramica e zoom più fluidi.
- Transizioni più fluide ed etichette delle mappe 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 di cui è stato eseguito il deployment in modo che il renderer aggiornato. Gli aggiornamenti automatici sono stati applicati a tutte le app in esecuzione Su dispositivi che soddisfano i requisiti minimi dei dispositivi, a prescindere dalla versione dell'SDK Maps per Android utilizzata dall'app. Questa implementazione è completa.
Gli aggiornamenti automatici non si applicavano a:
App che sono già state aggiornate per utilizzare il renderer di cui è stato eseguito l'upgrade.
App per le quali l'upgrade è stato esplicitamente disattivato.
App in esecuzione su dispositivi che non soddisfano i requisiti minimi del dispositivo.
Dispositivi supportati
Per utilizzare il visualizzatore di mappe di cui è stato eseguito l'upgrade, i dispositivi devono soddisfare i seguenti criteri:
- 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 Google Play Services 21.39.13 o versioni precedenti continuano a utilizzare il vecchio renderer.
Disattiva l'utilizzo del renderer aggiornato
Se necessario, puoi disattivare esplicitamente l'utilizzo del renderer aggiornato per utilizzare con il renderer precedente nell'app.
Per disattivare la funzionalità:
Esegui l'upgrade di Maps SDK per Android ad v18.0 o successiva.
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 precedente.Usa OnMapsSdkInitializedCallback per determinare quale versione del renderer è stata restituita.
Il codice deve chiamare
MapsInitializer.initialize()
prima che sia stato creato un
MapView,
MapFragment o
SupportMapFragment. Ti consigliamo di chiamarlo in onCreate
per
Applicazione,
o
Attività,
prima che venga impostata la visualizzazione del contenuto.
L'esempio seguente mostra come chiamare MapsInitializer.initialize()
per disattivare l'utilizzo del visualizzatore 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; } } }