Die beste Leistung erzielen Sie, wenn Sie Fleet Engine mit einem Fahrzeugstrom versorgen. Standortaktualisierungen. Verwenden Sie eine der folgenden Möglichkeiten, um diese Aktualisierungen bereitzustellen:
- Verwenden Sie das Driver SDK: Dies ist die einfachste Option. Treiber-SDK-Dokumentation ansehen für Android oder iOS.
- Benutzerdefinierten Code verwenden: Dies ist hilfreich, wenn Standorte über Ihr oder wenn Sie andere Geräte als Android oder iOS verwenden. In diesem Leitfaden wird dieser Ansatz behandelt.
Wenn Sie das Driver SDK nicht verwenden, um den Standort des Fahrzeugs zu aktualisieren, können Sie einen direkten Aufruf der Fleet Engine mit dem Standort des Fahrzeugs. Für jedes aktive Fahrzeug erwartet Fleet Engine mindestens einmal pro Minute und höchstens einmal alle 5 Sekunden eine Standortaktualisierung. Für diese Updates sind nur die Berechtigungen Fleet Engine Driver SDK User erforderlich.
Beispiel für die Aktualisierung der Fahrzeugposition
Java
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()
.setLastLocation(VehicleLocation.newBuilder()
.setSupplementalLocation(LatLng.newBuilder()
.setLatitude(37.3382)
.setLongitude(121.8863))
.setSupplementalLocationTime(now())
.setSupplementalLocationSensor(LocationSensor.CUSTOMER_SUPPLIED_LOCATION)
.setSupplementalLocationAccuracy(DoubleValue.of(15.0))) // Optional
.build();
UpdateVehicleRequest updateVehicleRequest = UpdateVehicleRequest.newBuilder()
.setName(vehicleName)
.setVehicle(updatedVehicle)
.setUpdateMask(FieldMask.newBuilder()
.addPaths("last_location"))
.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=last_location" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
--data-binary @- << EOM
{
"supplementalLocation": {"latitude": 12.1, "longitude": 14.5},
"supplementalLocationTime": "$(date -u --iso-8601=seconds)",
"supplementalLocationSensor": "CUSTOMER_SUPPLIED_LOCATION",
"supplementalLocationAccuracy": 15
}
EOM
Weitere Informationen finden Sie in der Referenz providers.vehicles.update.