Nuovo renderer della mappa

Un renderer delle mappe di cui è stato eseguito l'upgrade è disponibile a partire dalla versione 18.2.0 del Maps SDK for 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:

  • Le funzionalità di personalizzazione delle mappe basata su cloud sono disponibili con il nuovo visualizzatore.
  • Le personalizzazioni avanzate dei polilinee sono disponibili con il nuovo visualizzatore.
  • Carico di rete, domanda di elaborazione e consumo di memoria ridotti.
  • Gestione migliorata dei gesti 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 utilizzino il renderer di cui è stato eseguito l'upgrade. Gli aggiornamenti automatici sono stati applicati a tutte le app in esecuzione su dispositivi che soddisfano i requisiti minimi del dispositivo, indipendentemente dalla versione dell'SDK Maps per Android utilizzata dall'app. Questo implementazione è stata completata.

Gli aggiornamenti automatici non si sono applicati a:

  • App che sono già state aggiornate per utilizzare il renderer di cui è stato eseguito l'upgrade.

  • App che hanno disattivato esplicitamente l'upgrade.

  • 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 della versione 21.39.14 o successive di Google Play Services

I dispositivi che utilizzano Android 4.4W (livello API 20) e versioni precedenti o le versioni 21.39.13 o precedenti di Google Play Services continuano a utilizzare il vecchio renderer.

Disattivare l'utilizzo del renderer di cui è stato eseguito l'upgrade

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 che sia stato creato un MapView, MapFragment o SupportMapFragment. Ti consigliamo di chiamare questo metodo in onCreate per l'applicazione o l'attività della tua app prima che venga impostata la visualizzazione dei contenuti.

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