In diesem Dokument werden wichtige Fahrzeugfelder beschrieben, die Sie beim Erstellen und Verwalten von Fahrzeugen aktualisieren können.
|
Eine vollständige Liste der Fahrzeugfelder finden Sie unter:
|
Feld „Fahrzeugstatus“
Ihr System kann den Fahrzeugstatus auf OFFLINE
oder ONLINE
festlegen. Sie können beispielsweise festlegen, dass der Fahrzeugstatus jeden Tag um 9:00 Uhr auf ONLINE
und jeden Tag um 17:00 Uhr auf OFFLINE
gesetzt wird.
OFFLINE-Modus | ONLINE-Modus |
---|---|
Verwenden Sie OFFLINE , um anzugeben, dass ein Fahrzeug keine neuen Fahrten annimmt. Das Fahrzeug kann in diesem Zustand weiterhin Fahrten durchführen. |
|
Feld „Fahrzeugattribute“
Verwenden Sie das Feld „Fahrzeug“ attributes
, um benutzerdefinierte Kriterien zu erstellen, mit denen Ihre Kunden oder Flottenbetreiber Fahrzeuge in Ihrer Flotte anhand einer größeren Auswahl an Suchkriterien finden können. So können Sie mit Ihren Apps bessere Fahrzeugübereinstimmungen erzielen als mit Suchkriterien, die ausschließlich auf anderen Fahrzeugfeldern basieren. Jedes Fahrzeug kann maximal 100 Attribute haben und jedes muss einen eindeutigen Schlüssel haben. Werte können Strings, Boolesche Werte oder Zahlen sein.
Sie können beispielsweise ein benutzerdefiniertes Attribut namens class deklarieren, um Ihre Fahrgemeinschaftsfahrzeuge nach Klassenebenen zu unterscheiden. Sie verwenden die folgenden Stringwerte, um Fahrzeugklassenebenen darzustellen: ECONOMY
, STANDARD
und LUXURY
.
Werte für benutzerdefinierte Attribute müssen sich jedoch nicht gegenseitig ausschließen. Sie können Kriterien wie haustierfreundlich, Nichtraucher und für längere Fahrten geeignet verwenden. Jedes davon könnte ein separates benutzerdefiniertes Attribut mit booleschen Werten sein. Einem bestimmten Fahrzeug können alle drei dieser benutzerdefinierten Attribute zugewiesen werden, zusammen mit dem benutzerdefinierten Attribut class, das auf den entsprechenden Stringwert festgelegt ist.
Wenn Sie Attribute auf diese Weise verwenden, stehen Ihnen eine Vielzahl von Funktionen zur Verfügung, mit denen Sie Fahrzeuge für Fahrten mit bestimmten Anforderungen finden können. Eine Anleitung zum Verwenden benutzerdefinierter Attribute als Suchfilter finden Sie unter Fahrzeuge suchen.
Fahrzeugattribute aktualisieren
Sie können Fahrzeugattribute mit UpdateVehicle
oder UpdateVehicleAttributes
aktualisieren. Jeder attributes
-Schlüssel kann pro Fahrzeug nur einen Wert haben. Sie deklarieren benutzerdefinierte Fahrzeugattribute mit dem attributes
in der Feldmaske und geben dann Werte anhand der folgenden Methode an.
UpdateVehicle |
UpdateVehicleAttributes |
|
---|---|---|
Mit dieser API kann nicht nur ein einzelnes Attribut aktualisiert werden. Bei dieser Methode wird bei jeder Verwendung des Felds attributes in der Feldmaske der gesamte Satz der Fahrzeugattribute für das Fahrzeug neu deklariert. Dadurch werden alle vorhandenen Attribute überschrieben, die nicht ausdrücklich in der Feldmaske enthalten sind. Wenn Sie mit dieser Methode ein neues benutzerdefiniertes Attribut deklarieren, müssen Sie auch jedes benutzerdefinierte Attribut neu deklarieren, das für das Fahrzeug beibehalten werden soll. Wenn Sie das attributes in der Feldmaske ausschließen, bleiben vorhandene benutzerdefinierte Attribute für das Fahrzeug unverändert. Wenn Sie attributes in der Feldmaske verwenden, aber keine Werte festlegen, entspricht das dem Entfernen aller benutzerdefinierten Attribute aus dem Fahrzeug.
|
Bei dieser Methode wird eine bestimmte Liste der zu aktualisierenden Attribute akzeptiert. Mit der Anfrage werden nur die in der Feldmaske angegebenen Attribute aktualisiert oder hinzugefügt. Vorhandene Attribute, die nicht angegeben werden, bleiben unverändert. |
Beispiel für die Aktualisierung von Fahrzeugfeldern
In diesem Abschnitt wird beschrieben, wie Sie Fahrzeugfelder mit UpdateVehicleRequest
aktualisieren. UpdateVehicleRequest
enthält ein update_mask
, mit dem angegeben wird, welche Felder aktualisiert werden sollen. Weitere Informationen finden Sie in der Dokumentation zu Feldmasken von Protocol Buffers.
Für Aktualisierungen von anderen Feldern als last_location
sind Fleet Engine On-Demand Admin-Berechtigungen erforderlich.
Beispiel: Neuen Fahrtentyp und benutzerdefiniertes Attribut aktivieren
In diesem Beispiel sind back_to_back
Fahrten für das Fahrzeug aktiviert und es wird auch ein neues Attribut angegeben: class
. Wie bereits unter Fahrzeugattribute aktualisieren erwähnt, müssen Sie beim Aktualisieren des Felds attributes
mit diesem Ansatz alle benutzerdefinierten Attribute angeben, die beibehalten werden sollen. Daher wird im Beispiel ein cash_only
-Wert geschrieben, damit er nicht bei einem Aktualisierungsvorgang überschrieben wird, bei dem das Feld attributes
angegeben wird.
Wenn Sie nur den Wert eines Schlüssel/Wert-Attributpaars aktualisieren möchten, verwenden Sie stattdessen die Methode UpdateVehicleAttributes
und schließen Sie das Feld attribute
nicht in die Feldmaske für die UpdateVehicle
-Anfrage ein.
Weitere Informationen finden Sie in der providers.vehicles.update
-Referenz für gRPC und REST.
gRPC
static final String PROJECT_ID = "project-id";
static final String VEHICLE_ID = "vid-8241890";
VehicleServiceBlockingStub vehicleService = VehicleService.newBlockingStub(channel);
String vehicleName = "providers/" + PROJECT_ID + "/vehicles/" + VEHICLE_ID;
Vehicle updatedVehicle = Vehicle.newBuilder()
.setVehicleState(VehicleState.ONLINE)
.addAllAttributes(ImmutableList.of(
VehicleAttribute.newBuilder().setKey("class").setValue("ECONOMY").build(),
VehicleAttribute.newBuilder().setKey("cash_only").setValue("false").build()))
.setBackToBackEnabled(true)
.build();
UpdateVehicleRequest updateVehicleRequest = UpdateVehicleRequest.newBuilder()
.setName(vehicleName)
.setVehicle(updatedVehicle)
.setUpdateMask(FieldMask.newBuilder()
.addPaths("vehicle_state")
.addPaths("attributes")
.addPaths("back_to_back_enabled"))
.build();
try {
Vehicle updatedVehicle =
vehicleService.updateVehicle(updateVehicleRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
// Most implementations will call CreateVehicle in this case
break;
case PERMISSION_DENIED:
break;
}
return;
}
// If no Exception, Vehicle updated successfully.
REST
curl -X PUT \
"https://fleetengine.googleapis.com/v1/providers/project-id/vehicles/vid-8241890?updateMask=vehicle_state,attributes,back_to_back_enabled" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
--data-binary @- << EOM
{
"vehicleState": "ONLINE",
"attributes": [
{"key": "class", "value": "LUXURY"},
{"key": "cash_only", "value": "false"}
],
"backToBackEnabled": true
}
EOM