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