Nuovo renderer della mappa

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:

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à:

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;
    }
  }
}