Mit dem Maps SDK for Android kann ein Bitmapbild einer Karte dargestellt werden, das dem Nutzer eine eingeschränkte Interaktivität bietet. Das bezeichnet man als Lite-Modus-Karte.
Codebeispiele
Das ApiDemos-Repository auf GitHub enthält Beispiele, in denen die Verwendung des Lite-Modus veranschaulicht wird:
- LiteDemoActivity – Java: Grundlagen der Verwendung von Lite-Modus-Karten in Java
- LiteDemoActivity – Kotlin: Grundlagen der Verwendung von Lite-Modus-Karten in Kotlin
- LiteListDemoActivity – Java: Karten effizient in ListViews mithilfe des Lite-Modus in Java aufrufen
- LiteListDemoActivity – Kotlin: Karten effizient in ListViews mithilfe des Lite-Modus in Kotlin aufrufen
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 du mehrere Karten in einem Stream oder eine einzelnen Karte, die für die Unterstützung einer sinnvollen Interaktion zu klein sind, bereitstellen möchtest.
Die Nutzer können die angezeigte Karte nicht vergrößern oder schwenken. Sie haben aber die Möglichkeit, über Symbole auf der Karte auf die Ansicht der Karte in der mobilen App von Google Maps zuzugreifen und Wegbeschreibungen anzufordern.
Karte im Lite-Modus hinzufügen
Im Lite-Modus werden dieselben Klassen und Schnittstellen verwendet wie in der Google Maps Android API mit vollem Funktionsumfang. Du hast folgende Möglichkeiten, um für ein GoogleMap
-Element den Lite-Modus festzulegen:
- Entweder als XML-Attribut für
MapView
oderMapFragment
- 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
Java
GoogleMapOptions options = new GoogleMapOptions() .liteMode(true);
Kotlin
val options = GoogleMapOptions() .liteMode(true)
Informationen dazu, wie du den Anfangszustand der Karte festlegst, findest du in der Anleitung zum Kartenobjekt.
Intents zum Starten einer Kartenansichts- oder Wegbeschreibungsanforderung
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 findest du in der Dokumentation zu Symbolleisten.
Ebenfalls standardmäßig wird beim Antippen der Karte die mobile App von Google Maps durch die API aufgerufen. Du kannst diese Standardeinstellung überschreiben, indem du mit GoogleMap.setOnMapClickListener()
deinen eigenen Listener festlegst. Außerdem kannst du Klickereignisse auf der Karte deaktivieren, indem du setClickable()
in der Ansicht aufrufst, die MapView
oder MapFragment
enthält. Ausführliche Informationen zu diesen beiden Verfahren findest du in der Ereignisdokumentation.
Lebenszyklusereignisse
Wird die API im vollständig interaktiven Modus verwendet, müssen von der Klasse MapView
alle Methoden des Aktivitätslebenszyklus an die entsprechenden Methoden in der Klasse MapView
weitergeleitet werden. Beispiele für Lebenszyklusmethoden: onCreate()
, onDestroy()
, onResume()
und onPause()
.
Beim Verwenden der Klasse MapView
im Lite-Modus ist das Weiterleiten von Lebenszyklusereignissen 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, musst du
onResume()
undonPause()
aufrufen, weil die Standortquelle nur zwischen diesen Aufrufen aktualisiert wird. Wenn du deine eigene Standortquelle verwendest, 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 jeden Bereich 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 das Versehen von Karten mit Abständen entspricht der API mit vollem Funktionsumfang. |
Infofenster | Unterstützt? Ja
Wenn du das title() -Element einer Markierung festlegst, erscheint das standardmäßige Infofenster, sobald der Nutzer auf die Markierung tippt. Das Infofenster kann programmgesteuert eingeblendet werden, indem showInfoWindow() für die Markierung aufgerufen wird.
Über die Schnittstelle InfoWindowAdapter kannst du auch benutzerdefinierte Infofenster erstellen. |
Benutzerdefinierte Stile für Basiskarten | Unterstützt? Ja
Das Maps SDK for Android unterstützt benutzerdefinierte Stile für Basiskarten. |
Markierungen | Unterstützt? Teilweise
Du kannst eine Markierung hinzufügen und auf ein Klickereignis reagieren. Es ist auch möglich, benutzerdefinierte Markierungssymbole hinzuzufügen. Sie können aber nicht dragbar 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
Du kannst 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 Das Aufrufen von |
Kartenereignisse | Unterstützt? Teilweise
Im Lite-Modus werden Um Klickereignisse auf einer Karte im Lite-Modus zu deaktivieren, kannst du Weitere Informationen findest du in der Ereignisdokumentation. |
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 die Standardkacheln verankert sind. Andernfalls sind sie nicht sichtbar. Außerdem kannst du 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. |
Gesten | Unterstützt? Nein
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. |