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:
- 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 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
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
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()
undonPause()
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 Das Aufrufen von |
Kartenereignisse | Unterstützt? Teilweise
Im Lite-Modus werden Um Click-Events auf einer Karte im Lite-Modus zu deaktivieren, können Sie 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. |