In diesem Dokument wird beschrieben, wie Sie Fahrzeug- und Standortmarkierungen auf der Karte anpassen, die Sie für Ihre webbasierte App zur Sendungsverfolgung für Verbraucher verwenden.
Mit dem JavaScript Consumer SDK können Sie das Erscheinungsbild von zwei Arten von Markierungen anpassen, die der Karte hinzugefügt werden:
- Markierungen für Lieferfahrzeuge: Verwenden Sie
deliveryVehicleMarkerCustomization
. - Zielmarkierungen: Verwenden Sie
destinationMarkerCustomization
.
Dafür gibt es zwei Möglichkeiten:
- Einfachste: Geben Sie ein
MarkerOptions
-Objekt an, das auf alle Marker desselben Typs angewendet werden soll. Das Consumer SDK wendet das Styling dann in zwei Situationen an: bevor die Markierungen der Karte hinzugefügt werden und wenn sich die für die Markierungen verwendeten Daten geändert haben. - Erweitert: Geben Sie eine Anpassungsfunktion an. Mit Anpassungsfunktionen können Sie die Markierungen basierend auf Daten gestalten und Interaktivität hinzufügen, z. B. durch Klicken. Das Consumer SDK übergibt Daten an die Anpassungsfunktion, die den Typ des Objekts angeben, das die Markierung darstellt: Fahrzeug oder Ziel. So kann der Stil von Markierungen basierend auf dem aktuellen Status des Markierungselements geändert werden, z. B. die Anzahl der geplanten Stopps bis zum Ziel. Sie können sogar Daten aus Quellen außerhalb von Fleet Engine einbinden und den Marker basierend auf diesen Informationen gestalten.
Einfaches Beispiel: MarkerOptions
verwenden
Im folgenden Beispiel wird gezeigt, wie das Styling einer Fahrzeugmarkierung mit einem MarkerOptions
-Objekt konfiguriert wird. In diesem Beispiel wird die Deckkraft der Markierung auf 50 % festgelegt.
JavaScript
deliveryVehicleMarkerCustomization = {
opacity: 0.5
};
TypeScript
deliveryVehicleMarkerCustomization = {
opacity: 0.5
};
Erweitertes Beispiel: Anpassungsfunktion verwenden
Im folgenden Beispiel wird gezeigt, wie Sie das Styling einer Fahrzeugmarkierung konfigurieren, um die verbleibende Anzahl von Stopps für das Fahrzeug anzuzeigen, bevor der Stopp für die geplante Aufgabe erreicht wird.
JavaScript
deliveryVehicleMarkerCustomization =
(params) => {
var stopsLeft = params.taskTrackingInfo.remainingStopCount;
params.marker.setLabel(`${stopsLeft}`);
};
TypeScript
deliveryVehicleMarkerCustomization =
(params: ShipmentMarkerCustomizationFunctionParams) => {
const stopsLeft = params.taskTrackingInfo.remainingStopCount;
params.marker.setLabel(`${stopsLeft}`);
};
Klickbearbeitung für Markierungen hinzufügen
Sie können jedem Marker eine Klickbehandlung hinzufügen, wie im folgenden Beispiel für einen Fahrzeugmarker.
JavaScript
deliveryVehicleMarkerCustomization =
(params) => {
if (params.isNew) {
params.marker.addListener('click', () => {
// Perform desired action.
});
}
};
TypeScript
deliveryVehicleMarkerCustomization =
(params: ShipmentMarkerCustomizationFunctionParams) => {
if (params.isNew) {
params.marker.addListener('click', () => {
// Perform desired action.
});
}
};
Zusätzliche Informationen für Markierungen anzeigen
Mit einem InfoWindow
können Sie zusätzliche Informationen zu einer Fahrzeug- oder Ortsmarkierung anzeigen. Im folgenden Beispiel wird ein InfoWindow
erstellt und an eine Fahrzeugmarkierung angehängt:
JavaScript
// 1. Create an info window.
const infoWindow = new google.maps.InfoWindow(
{disableAutoPan: true});
locationProvider.addListener('update', e => {
const stopsCount =
e.taskTrackingInfo.remainingStopCount;
infoWindow.setContent(
`Your vehicle is ${stopsCount} stops away.`);
// 2. Attach the info window to a vehicle marker.
// This property can return multiple markers.
const marker = mapView.vehicleMarkers[0];
infoWindow.open(mapView.map, marker);
});
// 3. Close the info window.
infoWindow.close();
TypeScript
// 1. Create an info window.
const infoWindow = new google.maps.InfoWindow(
{disableAutoPan: true});
locationProvider.addListener('update', (e: google.maps.journeySharing.FleetEngineShipmentLocationProviderUpdateEvent) => {
const stopsCount =
e.taskTrackingInfo.remainingStopCount;
infoWindow.setContent(
`Your vehicle is ${stopsCount} stops away.`);
// 2. Attach the info window to a vehicle marker.
// This property can return multiple markers.
const marker = mapView.vehicleMarkers[0];
infoWindow.open(mapView.map, marker);
});
// 3. Close the info window.
infoWindow.close();