Lite-Modus

Mit dem Maps SDK for Android lässt sich ein Bitmapbild einer Karte darstellen, mit dem Nutzer eingeschränkt interagieren können. Dies wird als Karte im Lite-Modus bezeichnet.

Codebeispiele

Das ApiDemos-Repository auf GitHub enthält Beispiele, in denen die Verwendung des Lite-Modus veranschaulicht wird:

Lite-Modus – Übersicht

Eine Karte im Lite-Modus ist ein Bitmapbild einer Karte an einer bestimmten Position und mit einem gewissen Zoomfaktor. Im Lite-Modus werden alle Kartentypen (normal, Hybrid, Satellit, Gelände) sowie ein Teil der Funktionen der vollständigen API unterstützt. Der Lite-Modus ist hilfreich, wenn Sie mehrere Karten in einem Stream oder eine einzelne Karte, die für die Unterstützung einer sinnvollen Interaktion zu klein ist, zur Verfügung stellen möchten.

Die Nutzer können die angezeigte Karte nicht vergrößern oder schwenken. Über Symbole auf der Karte können sie aber auf die Ansicht der Karte in der mobilen App von Google Maps zugreifen und Wegbeschreibungen anfordern.

Karte im Lite-Modus hinzufügen

Im Lite-Modus werden dieselben Klassen und Schnittstellen verwendet wie in der vollständigen Google Maps Android API. Sie haben folgende Möglichkeiten, für ein GoogleMap-Element den Lite-Modus festzulegen:

  • Entweder als XML-Attribut für MapView oder MapFragment
  • Oder im GoogleMapOptions-Objekt

Als XML-Attribut für MapView oder MapFragment

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:name="com.google.android.gms.maps.MapFragment"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    map:cameraZoom="13"
    map:mapType="normal"
    map:liteMode="true"/>

Im GoogleMapOptions-Objekt

Kotlin

val options = GoogleMapOptions()
    .liteMode(true)

      

Java

GoogleMapOptions options = new GoogleMapOptions()
    .liteMode(true);

      

Informationen dazu, wie Sie den Anfangszustand der Karte festlegen, finden Sie unter Karte hinzufügen.

Intents zum Starten von Kartenansichts- oder Routenanfragen

Standardmäßig enthält eine Symbolleiste unten rechts auf der Karte Symbole, über die auf eine Kartenansichts- oder Wegbeschreibungsanforderung der mobilen App von Google Maps zugegriffen werden kann. Diese Symbolleiste lässt sich durch Aufrufen von UiSettings.setMapToolbarEnabled(false) deaktivieren. Weitere Informationen finden Sie in der Dokumentation zur Symbolleiste.

Wenn ein Nutzer auf die Karte tippt, wird über die API außerdem standardmäßig die Google Maps App geöffnet. Sie können dieses Verhalten überschreiben, indem Sie mit GoogleMap.setOnMapClickListener() einen eigenen Listener festlegen. Außerdem können Sie Click-Events auf der Karte deaktivieren. Rufen Sie dazu setClickable() in der Ansicht auf, die MapView oder MapFragment enthält. Ausführliche Informationen zu diesen beiden Verfahren finden Sie in der Ereignisdokumentation.

Lebenszyklusereignisse

Wird die API im interaktiven Modus verwendet, müssen Nutzer der MapView-Klasse alle Methoden des Aktivitätslebenszyklus an die entsprechenden Methoden in der MapView-Klasse weiterleiten. Beispiele für Lebenszyklusmethoden: onCreate(), onDestroy(), onResume() und onPause().

Beim Verwenden der Klasse MapView im Lite-Modus ist das Weiterleiten von Lifecycle-Events optional, mit Ausnahme der folgenden Situationen:

  • onCreate() muss aufgerufen werden, da andernfalls keine Karte erscheint.
  • Wenn der Punkt für den eigenen Standort auf der Lite-Modus-Karte angezeigt und die Standardquelle für den Standort verwendet werden soll, müssen Sie onResume() und onPause() aufrufen, weil die Standortquelle nur zwischen diesen Aufrufen aktualisiert wird. Wenn Sie Ihre eigene Standortquelle verwenden, ist das Aufrufen dieser beiden Methoden nicht erforderlich.

Unterstützte API-Funktionen

In der folgenden Tabelle wird die Funktionsweise einer Lite-Modus-Karte für die einzelnen Bereiche der API-Funktionen beschrieben. Wenn in einer App eine Methode aufgerufen wird, die im Lite-Modus nicht unterstützt wird, wird in der API eine Warnmeldung protokolliert.

Funktionen
Kartentypen
Unterstützt? Ja
Folgende Kartentypen sind über GoogleMapOptions.mapType() und GoogleMap.setMapType() verfügbar: MAP_TYPE_NORMAL, MAP_TYPE_SATELLITE, MAP_TYPE_TERRAIN, MAP_TYPE_HYBRID und MAP_TYPE_NONE.
Polylinien, Polygone, Kreise
Unterstützt? Ja
Die Lite-Modus-Funktionen für Formen entsprechen der API mit vollem Funktionsumfang.
Projektion
Unterstützt? Ja
Die Lite-Modus-Funktionen für Projektion entsprechen der API mit vollem Funktionsumfang.
Mein Standort
Unterstützt? Ja
Die Lite-Modus-Funktionen für die Ebene „Mein Standort“ entsprechen der API mit vollem Funktionsumfang.
Karte mit Innenrand versehen
Unterstützt? Ja
Die Lite-Modus-Unterstützung für die Funktion Karte mit Innenrand versehen entspricht der API mit vollem Funktionsumfang.
Infofenster
Unterstützt? Ja
Wird das title()-Element einer Markierung festgelegt, erscheint das standardmäßige Infofenster, wenn der Nutzer auf die Markierung tippt. Das Infofenster kann programmgesteuert eingeblendet werden, indem showInfoWindow() für die Markierung aufgerufen wird. Über die Schnittstelle InfoWindowAdapter können Sie auch benutzerdefinierte Infofenster erstellen.
Benutzerdefinierte Stile für Basiskarten
Unterstützt? Teilweise
Das Maps SDK for Android unterstützt benutzerdefinierte Stile für Basiskarten. Im Lite-Modus werden nur JSON-basierte benutzerdefinierte Stile unterstützt, keine cloudbasierten Stile. Dafür ist eine Karten-ID erforderlich, um Karten mit benutzerdefinierten Stilen zu rendern. Im Lite-Modus kann auch das Farbschema der Karte nicht auf den dunklen Modus eingestellt werden.
Markierungen
Unterstützt? Teilweise
Sie können eine Markierung hinzufügen und auf ein Click-Event reagieren. Es ist auch möglich, benutzerdefinierte Markierungssymbole hinzuzufügen. Sie können aber nicht ziehbar gemacht werden. Die Markierungen auf einer Karte im Lite-Modus sind flach und können nicht gedreht werden.
Kameraposition, Zoom und Animation
Unterstützt? Teilweise

Sie können Ziel und Zoom der Kamera einstellen, nicht aber Neigung oder Ausrichtung. Der Vergrößerungsfaktor wird im Lite-Modus auf die nächste Ganzzahl gerundet. Durch Aufrufen von GoogleMap.moveCamera() wird ein weiteres Kartenbild im Lite-Modus aufgerufen. Weitere Informationen zum Einstellen und Bearbeiten der Kamera finden Sie unter Ansicht ändern.

Das Aufrufen von GoogleMap.animateCamera() führt nicht zu einer Animation der Kamerabewegung. Die Kamerasicht wechselt direkt in die neue Position.

Kartenereignisse
Unterstützt? Teilweise

Im Lite-Modus werden GoogleMap.setOnMapClickListener() und GoogleMap.setOnMapLongClickListener() unterstützt.

Um Click-Events auf einer Karte im Lite-Modus zu deaktivieren, können Sie setClickable() in der Ansicht aufrufen, die MapView oder MapFragment enthält. Das ist vor allem dann hilfreich, wenn eine oder mehrere Karten in einer Listenansicht dargestellt werden, in der mit dem Click-Event eine Aktion aufgerufen werden soll, die in keinem Zusammenhang mit der Karte steht.

Weitere Informationen finden Sie in der Dokumentation zu Ereignissen.

Indoor-Karten und Gebäude
Unterstützt? Nein
Im Lite-Modus sind dieselben Kacheln wie in der Maps Static API zu sehen. Das bedeutet, dass Indoor-Gebäudepläne angezeigt werden, wenn sie fest in den Standardkacheln verankert sind. Andernfalls sind sie nicht sichtbar. Außerdem lässt sich die angezeigte Ebene nicht ändern und die Ebenenauswahl nicht bearbeiten.
Verkehrsebene
Unterstützt? Nein
GoogleMap.setTrafficEnabled() wird im Lite-Modus nicht unterstützt.
Boden-Overlays
Unterstützt? Nein
GoogleMap.addGroundOverlay() wird im Lite-Modus nicht unterstützt.
Kachel-Overlays
Unterstützt? Nein
GoogleMap.addTileOverlay() wird im Lite-Modus nicht unterstützt.
Touch-Gesten
Unterstützt? Nein
Touch-Gesten werden im Lite-Modus nicht unterstützt. Das Aktivieren und Deaktivieren von Gesten hat keine Auswirkungen.
Street View
Unterstützt? Nein
Street View wird im Lite-Modus nicht unterstützt.