Nouveau moteur de rendu de carte

Un moteur de rendu de carte mis à niveau est disponible à partir de la version 18.2.0 du SDK Maps pour Android. Il ajoute de nombreuses améliorations, y compris la compatibilité avec les styles de cartes basés dans le cloud.

Ce nouveau moteur de rendu offre les avantages suivants :

  • Disponibilité des styles de cartes basés dans le cloud
  • Disponibilité des fonctionnalités de personnalisation avancée des polylignes
  • Réduction de la charge réseau, de la demande de traitement et de la consommation de mémoire
  • Amélioration du traitement des gestes pour de meilleures animations, et affichage panoramique et zoom plus fluides
  • Transitions plus fluides et libellés de carte bien positionnés
  • Expérience utilisateur plus stable et plus performante

Calendrier de déploiement

Google a commencé à déployer le moteur de rendu de carte mis à niveau en octobre 2021. À cette époque, vous pouviez choisir de commencer à utiliser le moteur de rendu mis à niveau dans votre application.

En publiant la version 18.2.0 du SDK Maps pour Android, Google a remplacé l'ancien moteur de rendu par défaut par le moteur de rendu de carte mis à niveau. Avec la version 18.2.0, le moteur de rendu de carte utilisé lorsque vous créez une application ou recréez une application existante devient le moteur de rendu de carte mis à niveau.

Que se passe-t-il en cas de changement du moteur de rendu par défaut ?

Avec la publication de la version 18.2.0 du SDK Maps pour Android, le moteur de rendu par défaut est désormais le moteur de rendu mis à niveau. Pour exploiter tout son potentiel, vous devez créer vos applications ou recréer vos applications existantes à l'aide de la nouvelle version du SDK.

Toutefois, vous pouvez choisir de ne pas changer de moteur de rendu pour que votre application continue d'utiliser l'ancien. Pour obtenir un exemple de code permettant de ne pas changer de moteur de rendu, consultez Choisir de ne pas utiliser le moteur de rendu mis à niveau.

Appareils compatibles

Pour utiliser le moteur de rendu mis à niveau, les appareils doivent répondre aux critères suivants :

  • Android 5.0 (niveau d'API 21) ou version ultérieure
  • Au moins 2 Go d'espace de stockage
  • Version 21.39.14 ou ultérieure des services Google Play

Les appareils qui fonctionnent sous Android 4.4W (niveau d'API 20) ou une version antérieure, dont l'espace de stockage est inférieur à 2 Go, ou qui utilisent les services Google Play 21.39.13 ou une version antérieure, continueront d'utiliser l'ancien moteur de rendu, même lorsque le moteur de rendu de carte mis à niveau sera devenu votre moteur de rendu par défaut.

Choisir de ne pas utiliser le moteur de rendu mis à niveau

Par défaut, les applications créées avec la version 18.2.0 du SDK Maps pour Android utilisent le moteur de rendu mis à niveau. Si nécessaire, vous pouvez choisir explicitement de ne pas utiliser le moteur de rendu mis à niveau afin d'utiliser l'ancien moteur de rendu dans votre application.

Procédez comme suit :

Votre code doit appeler MapsInitializer.initialize() avant la création de MapView, MapFragment ou SupportMapFragment. Nous vous recommandons d'appeler cette méthode dans onCreate pour l'élément Application ou Activity de votre application avant que l'affichage de son contenu ne soit défini.

L'exemple suivant montre comment appeler MapsInitializer.initialize() pour choisir de conserver l'ancien moteur de rendu de carte.

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