Nuovo renderer della mappa

Un renderer di mappe aggiornato è disponibile a partire dalla versione 18.2.0 del Maps SDK per Android. Questo renderer apporta molti miglioramenti, incluso il supporto per Personalizzazione delle mappe basata su cloud.

Il nuovo renderer offre i seguenti vantaggi:

  • Personalizzazione delle mappe basata su cloud sono disponibili con il nuovo renderer.
  • Personalizzazioni avanzate di Polyline disponibili con il nuovo renderer.
  • Carico di rete, domanda di elaborazione e consumo di memoria ridotti.
  • Gestione dei gesti migliorata per animazioni migliori, panoramica e eseguire lo zoom.
  • 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 un dispositivo per utilizzare il renderer aggiornato. Verranno eseguiti aggiornamenti automatici in modo incrementale nei prossimi mesi in base al dispositivo, ovvero l'utente finale verranno aggiornati in momenti diversi durante il periodo di aggiornamento.

Gli aggiornamenti automatici vengono applicati a tutte le app in esecuzione su dispositivi che soddisfano la minima requisiti del dispositivo, indipendentemente dalla versione SDK Maps per Android utilizzato dall'app.

Gli aggiornamenti automatici non si applicano a:

  • App già aggiornate per l'utilizzo del renderer aggiornato.

  • App per le quali è stato esplicitamente disattivato l'upgrade.

  • App in esecuzione su dispositivi che non soddisfano il dispositivo minimo requisiti.

Che cosa succede quando cambia il renderer predefinito?

Il renderer predefinito è diventato il renderer aggiornato con il rilascio della versione 18.2.0 di Maps SDK per Android. Per sfruttare il renderer aggiornato, puoi creare nuove app o ricreare quelle esistenti, usando il nuovo SDK completamente gestita. In alternativa, puoi attendere che l'app di cui hai eseguito il deployment venga aggiornata automaticamente entro il giorno in tutti i canali Google.

Dopo l'aggiornamento, la tua app potrà sfruttare tutte le nuove funzionalità e disponibili nel renderer aggiornato.

Tuttavia, se decidi di disattivare la modifica, la tua app continua a utilizzare renderer legacy. Consulta Disattivare l'utilizzo del renderer aggiornato per di codice di esempio per la disattivazione.

Dispositivi supportati

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

  • Android 5.0 (livello API 21) o versioni successive
  • Utilizzo di Google Play Services versione 21.39.14 o successive

Dispositivi con Android 4.4W (livello API 20) e versioni precedenti o che utilizzano Google Play 21.39.13 o precedenti continuano a utilizzare il renderer legacy.

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

Il codice deve chiamare MapsInitializer.initialize() prima di qualsiasi MapView, MapFragment, o SupportMapFragment è stata creata. 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() a disattiva il 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;
    }
  }
}