Die Klasse ConsumerMapStyle
verfügt über Setter- und Getter-Methoden, die Ihnen die dynamische Anpassung von Markierungen und Polylinien ermöglichen. Diese Klasse wird mit der Methode ConsumerController.getConsumerMapStyle()
asynchron verfügbar gemacht.
Die UI-Anpassung bleibt über Geräterotationen hinweg und bleibt wirksam, bis das ConsumerController
getrennt wird.
Benutzerdefinierte Markierungen
Die Methode zum Festlegen des Markierungstyps und seiner Eigenschaften ist ConsumerMapStyle.setMarkerStyleOptions()
. Die Optionen für benutzerdefinierte Markierungen überschreiben die vom Consumer SDK bereitgestellten Standardwerte.
Zum Wiederherstellen der Standardwerte rufen Sie setMarkerStyleOptions()
mit null für den Parameter MarkerOptions
auf. Rufen Sie die aktive MarkerOptions
mit getMarkerStyleOptions()
ab.
Markierungstypen
Die folgenden Markierungen können angepasst werden:
TRIP_PICKUP_POINT
TRIP_DROPOFF_POINT
TRIP_INTERMEDIATE_DESTINATION
TRIP_VEHICLE
TRIP_PICKUP_POINT
und TRIP_DROPOFF_POINT
werden während der Fahrtüberwachung angezeigt.
TRIP_VEHICLE
wird während der Fahrtüberwachung angezeigt. Das Markierungssymbol ändert sich nicht entsprechend dem tatsächlichen Fahrzeugtyp für die Fahrt. Das Consumer SDK aktualisiert die Rotation des TRIP_VEHICLE
-Symbols während der Fahrtüberwachung, um das Verhalten des tatsächlichen Fahrzeugs auf der Route nachzuahmen.
Markierungsoptionen
Die für jede Markierung verfügbaren anpassbaren Eigenschaften sind die von Google Maps MarkerOptions
bereitgestellten Eigenschaften.
MarkerOptions
wird mit seinem Konstruktor erstellt und die benutzerdefinierten Eigenschaften werden mithilfe von „Setter“-Stilmethoden angegeben.
Für jede Eigenschaft werden Standardwerte angegeben. Sie müssen daher nur benutzerdefinierte Werte angeben.
Sie können eine Markierung deaktivieren, indem Sie visible
auf false
setzen.
Es sollten genügend Daten bereitgestellt werden, damit Sie stattdessen Ihr eigenes UI-Element verwenden können.
Beispiel
Java
// Initializing marker options.
consumerController
.getConsumerMapStyle()
.addOnSuccessListener(
consumerMapStyle -> {
consumerMapStyle.setMarkerStyleOptions(
MarkerType.TRIP_VEHICLE,
new MarkerOptions()
.visible(false));
});
// Reset marker options to default values.
consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, null);
Kotlin
// Initializing marker options.
consumerController
.getConsumerMapStyle()
.addOnSuccessListener({ consumerMapStyle ->
consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, MarkerOptions().visible(false))
})
// Reset marker options to default values.
consumerMapStyle.setMarkerStyleOptions(MarkerType.TRIP_VEHICLE, null)
Benutzerdefinierte Polylinien
Die Anpassung von Polylinien wird mit der Methode ConsumerMapStyle.setPolylineStyleOptions
festgelegt. Wenn Sie Optionen für benutzerdefinierte Polylinien festlegen, werden die vom Consumer SDK bereitgestellten Standardwerte überschrieben. Sie können die Standardwerte wiederherstellen, indem Sie setPolylineStyleOptions
mit dem Wert „null“ für den Parameter PolylineOptions
aufrufen. Der aktive PolylineOptions
kann mit der Methode getPolylineStyleOptions
abgerufen werden.
Polylinientypen
Die folgenden Polylinientypen können angepasst werden:
ACTIVE_ROUTE
REMAINING_ROUTE
ACTIVE_ROUTE
und REMAINING_ROUTE
werden während der Fahrtüberwachung angezeigt und stellen die Route des Fahrzeugs dar.
Polylinieneigenschaften
Die für jede Polylinie verfügbaren anpassbaren Eigenschaften werden von Google Maps PolylineOptions
bereitgestellt.
PolylineOptions
wird mit seinem Konstruktor erstellt und die benutzerdefinierten Eigenschaften werden mithilfe von „Setter“-Stilmethoden angegeben. Für jede Eigenschaft werden Standardwerte bereitgestellt, sodass Sie nur benutzerdefinierte Werte angeben müssen.
Sie können die Polylinie deaktivieren, indem Sie visible
auf false
setzen.
Beispiel
Java
// Initializing polyline style options.
consumerController
.getConsumerMapStyle()
.addOnSuccessListener(
consumerMapStyle -> {
consumerMapStyle.setPolylineStyleOptions(
PolylineType.ACTIVE_ROUTE,
new PolylineOptions()
.visible(false));
});
// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null);
Kotlin
// Initializing polyline options.
consumerController
.getConsumerMapStyle()
.addOnSuccessListener({ consumerMapStyle ->
consumerMapStyle.setPolylineStyleOptions(
PolylineType.ACTIVE_ROUTE,
PolylineOptions().visible(false)
)
})
// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null)
Aktive und verbleibende Route
Wenn der Fahrt- und Bestellfortschritt aktiviert ist, kann Ihre App die Nutzererfahrung mithilfe von Polylinien anpassen, auf denen die aktiven und verbleibenden Routen der Fahrzeuge angezeigt werden.
Die aktive Route ist der Pfad, den das Fahrzeug derzeit zurücklegt, um den nächsten Wegpunkt in der aktiven Fahrt des Nutzers zu erreichen. Die verbleibende Route ist der Weg, den das Fahrzeug hinter der aktiven Route zurücklegt. Wenn der aktive Wegpunkt der Route der letzte Wegpunkt ist, existiert die verbleibende Route nicht.
Aktive und verbleibende Polylinien können über die Anwendung angepasst und die Sichtbarkeit gesteuert werden. Standardmäßig ist die aktive Route sichtbar und die verbleibende Route nicht.
Beispiel
Java
// Initializing polyline options.
consumerController
.getConsumerMapStyle()
.addOnSuccessListener(
consumerMapStyle -> {
consumerMapStyle.setPolylineStyleOptions(
PolylineType.ACTIVE_ROUTE,
new PolylineOptions()
.color(Color.BLUE));
consumerMapStyle.setPolylineStyleOptions(
PolylineType.REMAINING_ROUTE,
new PolylineOptions()
.color(Color.BLACK)
.width(5)
.visible(true));
});
// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null);
consumerMapStyle.setPolylineStyleOptions(PolylineType.REMAINING_ROUTE, null);
Kotlin
// Initializing polyline options.
consumerController
.getConsumerMapStyle()
.addOnSuccessListener({ consumerMapStyle ->
{
consumerMapStyle.setPolylineStyleOptions(
PolylineType.ACTIVE_ROUTE,
PolylineOptions().color(Color.BLUE)
)
consumerMapStyle.setPolylineStyleOptions(
PolylineType.REMAINING_ROUTE,
PolylineOptions().color(Color.BLACK).width(5).visible(true)
)
}
})
// Reset polyline options to default values.
consumerMapStyle.setPolylineStyleOptions(PolylineType.ACTIVE_ROUTE, null)
consumerMapStyle.setPolylineStyleOptions(PolylineType.REMAINING_ROUTE, null)
Polylinien mit Verkehrserkennung
Die Verkehrsebene der Polylinie ist standardmäßig deaktiviert. Wenn diese Option aktiviert ist, werden Segmente, die Abschnitte des ungewöhnlichen Verkehrs darstellen, über der Polylinie der Route am Z-Index PolylineOptions.getZIndex() plus einem Versatz je nach Verkehrslage gezeichnet.
Die Verkehrslage wird als einer von vier Geschwindigkeitstypen dargestellt. Sie können die Farbe für jeden Geschwindigkeitstyp anpassen.
Um „Polylinien mit Verkehrserkennung“ zu aktivieren, müssen Sie ein TrafficStyle
-Objekt erstellen, das dann durch Aufrufen von setPolylineTrafficStyle()
an ConsumerMapStyle
übergeben wird.
Beispiel
Java
// TrafficStyle is part of the Consumer SDK.
TrafficStyle trafficStyle = TrafficStyle.builder()
.setTrafficVisibility(true)
.setTrafficColor(SpeedType.NO_DATA, Color.GREY)
.setTrafficColor(SpeedType.NORMAL_VALUE, Color.BLUE)
.setTrafficColor(SpeedType.SLOW_VALUE, Color.ORANGE)
.setTrafficColor(SpeedType.TRAFFIC_JAM, Color.RED)
.build();
consumerMapStyle.setPolylineTrafficStyle(PolylineType.ACTIVE_ROUTE, trafficStyle);
Kotlin
// TrafficStyle is part of the Consumer SDK.
val trafficStyle =
TrafficStyle.builder()
.setTrafficVisibility(true)
.setTrafficColor(SpeedType.NO_DATA, Color.GREY)
.setTrafficColor(SpeedType.NORMAL_VALUE, Color.BLUE)
.setTrafficColor(SpeedType.SLOW_VALUE, Color.ORANGE)
.setTrafficColor(SpeedType.TRAFFIC_JAM, Color.RED)
.build()
consumerMapStyle.setPolylineTrafficStyle(PolylineType.ACTIVE_ROUTE, trafficStyle)
Kamerazoom wird angepasst, um den Fokus auf eine Fahrt zu lenken
Über die standardmäßige Schaltfläche Mein Standort, die im Maps SDK integriert ist, wird die Kamera auf den Gerätestandort zentriert. Wenn eine aktive Fahrt- und Bestellfortschrittssitzung aktiv ist, kann es sinnvoll sein, die Kamera so zu zentrieren, dass sie sich auf die Fahrt statt auf den Gerätestandort konzentriert.
Integrierte Lösung für das Consumer SDK for Android: AutoCamera
Damit Sie sich auf die Reise statt auf den Gerätestandort konzentrieren können, bietet das Consumer SDK die Funktion „AutoCamera“, die standardmäßig aktiviert ist. Die Kamera zoomt, um die Route für den Fahrt- und Bestellfortschritt und den nächsten Wegpunkt zu fokussieren.
Kameraverhalten anpassen
Wenn Sie das Kameraverhalten genauer steuern möchten, können Sie die automatische Kamera mit ConsumerController.setAutoCameraEnabled()
deaktivieren oder aktivieren.
ConsumerController.getCameraUpdate()
gibt die derzeit empfohlenen Kameragrenzen zurück. Anschließend können Sie dieses CameraUpdate
als Argument für GoogleMap.moveCamera()
oder GoogleMap.animateCamera()
angeben.