Fleet Engine से सबसे अच्छी परफ़ॉर्मेंस पाने के लिए, उसे वाहन की जगह की जानकारी के अपडेट की स्ट्रीम दें. इन अपडेट को उपलब्ध कराने के लिए, इनमें से कोई एक तरीका इस्तेमाल करें:
- Driver SDK टूल का इस्तेमाल करें: यह सबसे आसान विकल्प है. Android या iOS के लिए, Driver SDK का दस्तावेज़ देखें.
- कस्टम कोड का इस्तेमाल करें: यह तब काम आता है, जब जगहों की जानकारी आपके बैकएंड के ज़रिए रिले की जाती है या जब Android या iOS के अलावा किसी दूसरे डिवाइस का इस्तेमाल किया जाता है. इस गाइड में, उस तरीके के बारे में बताया गया है.
अगर वाहन की जगह की जानकारी अपडेट करने के लिए Driver SDK का इस्तेमाल नहीं किया जा रहा है, तो वाहन की जगह की जानकारी के साथ Fleet Engine को सीधे तौर पर कॉल किया जा सकता है. चालू वाहन के लिए, Fleet Engine को हर मिनट में कम से कम एक बार और ज़्यादा से ज़्यादा हर पांच सेकंड में एक बार जगह की जानकारी अपडेट होने की उम्मीद होती है. इन अपडेट के लिए, सिर्फ़ Fleet Engine Driver SDK User के पास मौजूद अनुमतियों की ज़रूरत होती है.
वाहन की जगह की जानकारी अपडेट करने का उदाहरण
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
providers.vehicles.update का रेफ़रंस देखें.