Ab Version 18.2.0 des Maps SDK for Android ist ein aktualisierter Karten-Renderer verfügbar. Er umfasst viele Verbesserungen, beispielsweise wird nun das cloudbasierte Gestalten von Karteninhalten unterstützt.
Der neue Renderer bietet folgende Vorteile:
- Cloudbasiertes Gestalten von Karteninhalten ist jetzt verfügbar.
- Erweiterte Anpassungen von Polylinien sind jetzt verfügbar.
- Netzwerklast, Verarbeitungsbedarf und Arbeitsspeicherverbrauch sind geringer.
- Optimierungen bei der Gestenhandhabung sorgen für bessere Animationen. Außerdem: flüssigeres Schwenken und Zoomen
- Die Übergänge sind flüssiger und die Kartenlabels übersichtlich positioniert.
- Der Renderer sorgt für eine gleichbleibend größere Nutzerfreundlichkeit.
Zeitplan für die Einführung
Die Einführung des aktualisierten Karten-Renderers begann im Oktober 2021. Sie konnten sich damals entscheiden, ob Sie den aktualisierten Renderer in Ihrer App verwenden möchten.
Im Rahmen der Veröffentlichung von Version 18.2.0 des Maps SDK for Android wurde der Standard-Renderer vom alten zum aktualisierten Karten-Renderer geändert. Ab Version 18.2.0 wird beim Erstellen neuer Apps oder Überarbeiten bestehender Apps der aktualisierte Karten-Renderer verwendet.
Was passiert, wenn sich der Standard-Renderer ändert?
Im Rahmen der Veröffentlichung von Version 18.2.0 des Maps SDK for Android wird der aktualisierte Renderer zum Standard-Renderer. Um die Vorteile des aktualisierten Renderers zu nutzen, müssen Sie die neue SDK-Version verwenden, um Apps neu zu erstellen oder zu überarbeiten.
Sie können sich auch gegen die Änderung entscheiden. Dann wird für Ihre App weiter der alte Renderer verwendet. Entsprechenden Beispielcode finden Sie unter Den aktualisierten Renderer nicht verwenden.
Unterstützte Geräte
Geräte, auf denen der aktualisierte Renderer verwendet werden soll, müssen folgende Voraussetzungen erfüllen:
- Android 5.0 (API-Level 21) oder höher
- Mindestens 2 GB Datenspeicher
- Version 21.39.14 der Google Play-Dienste oder höher installiert
Auf Geräten mit Android 4.4W (API-Level 20) und früher, mit weniger als 2 GB Datenspeicher oder mit Version 21.39.13 der Google Play-Dienste und früher wird auch nach der Änderung des Standard-Renderers zum aktualisierten Renderer weiter der alte Renderer verwendet.
Den aktualisierten Renderer nicht verwenden
Standardmäßig wird in Apps, die mit Version 18.2.0 des Maps SDK for Android erstellt werden, der aktualisierte Renderer verwendet. Bei Bedarf können Sie sich jedoch explizit gegen die Verwendung des aktualisierten Renderers entscheiden. In diesem Fall wird in Ihrer App weiter der alte Renderer verwendet.
Gehen Sie so vor:
Aktualisieren Sie Ihren Code so, dass MapsInitializer und MapsInitializer.Renderer explizit importiert werden.
Aktualisieren Sie Ihren Code so, dass
MapsInitializer.initialize()
aufgerufen und dabeiRenderer.LEGACY
übergeben wird, um weiter den alten Renderer zu verwenden.Mit OnMapsSdkInitializedCallback lässt sich bestimmen, welche Version des Renderers zurückgegeben wurde.
Über Ihren Code muss MapsInitializer.initialize()
aufgerufen werden, bevor ein MapView-, MapFragment- oder SupportMapFragment-Objekt erstellt wird. Der Aufruf sollte in onCreate
für die Application oder Activity Ihrer App erfolgen, bevor die Inhaltsansicht festgelegt wird.
Im folgenden Beispiel sehen Sie, wie MapsInitializer.initialize()
aufgerufen wird, um festzulegen, dass weiter der alte Renderer verwendet werden soll.
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; } } }