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 marzo 2024, Google ha iniziato ad aggiornare automaticamente tutte le app di cui è stato eseguito il deployment su un dispositivo in modo da utilizzare il renderer aggiornato. Gli aggiornamenti automatici verranno eseguiti in modo incrementale nei prossimi mesi 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 sui dispositivi che soddisfano i requisiti minimi dei dispositivi, indipendentemente dalla versione di Maps SDK per Android utilizzata dall'app.

Gli aggiornamenti automatici non si applicano a:

Cosa succede quando viene modificato 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, la tua app potrà usufruire di tutte le nuove funzionalità e i nuovi vantaggi disponibili nel renderer aggiornato.

Tuttavia, se decidi di disattivare la modifica, la tua app continuerà a utilizzare il renderer precedente. Consulta la sezione Disattivare l'utilizzo del renderer aggiornato per un codice di esempio sulla disattivazione.

Dispositivi supportati

L'aggiornamento automatico si applica a tutti i dispositivi che soddisfano questi criteri, indipendentemente dalla versione dell'SDK Maps per Android utilizzata dall'app:

  • 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 Google Play Services 21.39.13 o versioni precedenti continuano a utilizzare il renderer precedente.

Disattivazione dell'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à:

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