15 Jahre Google Maps Platform – Neuigkeiten und Ankündigungen

Lite-Modus

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:

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 vollständigen Google Maps Android API. Du hast folgende Möglichkeiten, um 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

GoogleMapOptions options = new 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() und onPause() 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, MAP_TYPE_NONE.
Polylinien, Polygone, Kreise
Unterstützt? Ja
Die Lite-Modus-Funktionen für Formen entsprechen der vollständigen API.
Projektion
Unterstützt? Ja
Die Lite-Modus-Funktionen für Projektion entsprechen der vollständigen API.
Mein Standort
Unterstützt? Ja
Die Lite-Modus-Funktionen für die Ebene "Mein Standort" entsprechen der vollständigen API.
Karte mit Innenrand versehen
Unterstützt? Ja
Die Lite-Modus-Unterstützung für das Versehen von Karten mit Innenrändern entspricht der vollständigen API.
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 GoogleMap.moveCamera() wird ein weiteres Kartenbild im Lite-Modus aufgerufen. Weitere Informationen zum Einstellen und Bearbeiten der Kamera findest du 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 Klickereignisse auf einer Karte im Lite-Modus zu deaktivieren, kannst du 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 Klickereignis eine Aktion aufgerufen werden soll, die in keinem Zusammenhang mit der Karte steht.

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.