|
In diesem Dokument werden wichtige Fahrzeugfelder behandelt, die Sie beim Erstellen und Verwalten von Fahrzeugen aktualisieren können.
|
Eine vollständige Liste der Fahrzeugfelder finden Sie unter:
|
Feld „Fahrzeugzustand“
Ihr System kann den Fahrzeugzustand auf OFFLINE oder ONLINE festlegen. Sie können beispielsweise den Fahrzeugzustand jeden Tag um 9:00 Uhr auf ONLINE und jeden Tag um 17:00 Uhr auf OFFLINE festlegen.
| OFFLINE-Modus | ONLINE-Modus |
|---|---|
Verwenden Sie OFFLINE, um anzugeben, dass ein Fahrzeug keine neuen Fahrten annimmt. Beachten Sie, dass das Fahrzeug in diesem Zustand weiterhin zugewiesene Fahrten abschließen kann. |
|
Feld „Fahrzeugattribute“
Verwenden Sie das Feld attributes des Fahrzeugs, 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. Dadurch können Ihre Apps bessere Fahrzeugübereinstimmungen liefern, als wenn Sie Suchkriterien verwenden, die ausschließlich auf anderen Fahrzeugfeldern basieren. Jedes Fahrzeug kann maximal 100 Attribute haben und jedes Attribut 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 Mitfahrgelegenheitsfahrzeuge nach Klassenstufen zu unterscheiden. Verwenden Sie die folgenden Stringwerte, um die Fahrzeugklassenstufen darzustellen: ECONOMY, STANDARD und LUXURY.
Benutzerdefinierte Attributwerte müssen sich jedoch nicht gegenseitig ausschließen. Sie können Kriterien wie pet-friendly, non-smoking und able to take longer trips verwenden. Jedes dieser Kriterien kann ein separates benutzerdefiniertes Attribut mit booleschen Werten sein. Ein bestimmtes Fahrzeug kann alle drei benutzerdefinierten Attribute sowie das benutzerdefinierte Attribut class mit dem entsprechenden Stringwert zugewiesen bekommen.
Wenn Sie Attribute auf diese Weise verwenden, können Sie eine Vielzahl von Funktionen nutzen, die hilfreich sind, um Fahrzeuge für Fahrten mit bestimmten Anforderungen zu finden. Eine Anleitung zur Verwendung benutzerdefinierter Attribute als Abfragefilter 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 attributes in der Feldmaske und geben dann Werte basierend auf der folgenden Methode an.
UpdateVehicle |
UpdateVehicleAttributes |
|
|---|---|---|
Mit dieser API können Sie nicht nur ein einzelnes Attribut aktualisieren. Wenn Sie
diese Methode verwenden, führt jede Verwendung des attributes
Felds in der Feldmaske dazu, dass der gesamte Satz von
Fahrzeugattributen für das Fahrzeug neu deklariert wird. Dadurch werden alle vorhandenen Attribute überschrieben, die nicht explizit in der
Feldmaske enthalten sind. Wenn Sie mit dieser Methode ein neues benutzerdefiniertes Attribut deklarieren,
müssen Sie auch alle benutzerdefinierten Attribute neu deklarieren, die das Fahrzeug behalten soll. Wenn Sie die attributes in der Feldmaske ausschließen, bleiben die vorhandenen benutzerdefinierten 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.
|
Diese Methode akzeptiert eine bestimmte Liste von Attributen, die aktualisiert werden sollen. Die Anfrage aktualisiert oder fügt nur die Attribute hinzu, die in der Feldmaske angegeben sind. Vorhandene Attribute, die nicht angegeben sind, bleiben unverändert. |
Beispiel für das Aktualisieren von Fahrzeugfeldern
In diesem Abschnitt wird gezeigt, wie Sie Fahrzeugfelder mit UpdateVehicleRequest aktualisieren. Diese Anfrage enthält eine update_mask, um anzugeben, welche Felder aktualisiert werden sollen. Weitere Informationen finden Sie in der
Protocol Buffers-Dokumentation zu Feldmasken.
Für Aktualisierungen anderer Felder als last_location sind Fleet Engine On-Demand Admin-Berechtigungen erforderlich.
Beispiel: Neuen Fahrtentyp und benutzerdefiniertes Attribut aktivieren
In diesem Beispiel werden back_to_back-Fahrten für das Fahrzeug aktiviert und ein neues Attribut angegeben: class. Wie bereits unter Fahrzeugattribute aktualisieren erwähnt,
müssen Sie bei dieser Methode alle
benutzerdefinierten Attribute angeben, die Sie behalten möchten.attributes Daher enthält das Beispiel einen cash_only-Wert, damit er bei einer Aktualisierung, bei der das Feld attributes angegeben wird, nicht überschrieben wird.
Wenn Sie nur den Wert eines Schlüssel/Wert-Attributpaares aktualisieren möchten, verwenden Sie stattdessen die
UpdateVehicleAttributes Methode und schließen Sie das attribute Feld
in der Feldmaske für die UpdateVehicle Anfrage aus.
Eine Referenz zu providers.vehicles.update finden Sie unter 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