Nuovo renderer della mappa

Un renderer delle mappe aggiornato è disponibile a partire dalla versione 18.2.0 di Maps SDK for Android. Questo renderer offre molti miglioramenti, tra cui il supporto per la personalizzazione delle mappe basata su cloud.

Il nuovo renderer offre i seguenti vantaggi:

  • Con il nuovo renderer sono disponibili funzionalità di personalizzazione delle mappe basate su cloud.
  • Con il 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, oltre a panoramica e zoom più fluidi.
  • Transizioni più fluide e etichette posizionate in modo chiaro sulla mappa.
  • Un'esperienza utente più stabile e migliorata.

Pianificazione dell'implementazione

A ottobre 2021, Google ha avviato il lancio del renderer delle mappe aggiornato. A quel punto, puoi decidere di attivare l'utilizzo del renderer aggiornato nella tua app.

Con il rilascio della versione 18.2.0 di Maps SDK for Android, Google ha trasferito il renderer predefinito dal renderer precedente a quello aggiornato per le mappe. Con la versione 18.2.0, il renderer della mappa utilizzato quando crei una nuova app o ricrei un'app esistente diventa quello aggiornato.

Cosa succede quando viene modificato il renderer predefinito?

Il renderer predefinito diventa il renderer aggiornato con la versione 18.2.0 di Maps SDK for Android. Per poter utilizzare il renderer aggiornato, devi creare nuove app o ricreare quelle esistenti utilizzando la nuova versione dell'SDK.

Tuttavia, puoi decidere di disattivare la modifica. Se disattivi questa funzionalità, l'app continua a utilizzare il renderer precedente. Consulta la sezione Disattivare l'utilizzo del renderer aggiornato per un codice di esempio sulla disattivazione.

Dispositivi supportati

Per utilizzare il renderer delle mappe aggiornato, i dispositivi devono soddisfare i seguenti criteri:

  • Android 5.0 (livello API 21) o versioni successive
  • Utilizzare 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 le versioni 21.39.13 o precedenti di Google Play Services continuano a utilizzare il renderer precedente anche dopo che il renderer predefinito è stato modificato al renderer della mappa aggiornato.

Disattivazione dell'utilizzo del renderer aggiornato

Per impostazione predefinita, le app create utilizzando la versione 18.2.0 di Maps SDK for Android utilizzano il renderer aggiornato. Se necessario, puoi disattivare esplicitamente l'utilizzo del renderer aggiornato per utilizzare il renderer precedente nella tua app.

Per disattivare la funzionalità:

Il codice deve chiamare MapsInitializer.initialize() prima di creare qualsiasi elemento MapView, MapFragment o SupportMapFragment. Ti consigliamo di chiamare in onCreate per Applicazione o Attività dell'app prima di impostare la relativa visualizzazione dei contenuti.

L'esempio seguente mostra come chiamare MapsInitializer.initialize() per disattivare l'utilizzo del renderer della mappa 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;
    }
  }
}