ফ্লিট ইঞ্জিনের সর্বোত্তম পারফরম্যান্সের জন্য, এটিকে ধারাবাহিকভাবে গাড়ির অবস্থানের আপডেট সরবরাহ করুন। এই আপডেটগুলি সরবরাহ করতে নিম্নলিখিত উপায়গুলির মধ্যে যেকোনো একটি ব্যবহার করুন:
- ড্রাইভার এসডিকে ব্যবহার করুন : এটি সবচেয়ে সহজ বিকল্প। অ্যান্ড্রয়েড বা আইওএস-এর জন্য ড্রাইভার এসডিকে ডকুমেন্টেশন দেখুন।
- কাস্টম কোড ব্যবহার করুন : এটি তখন কার্যকর যখন আপনার ব্যাকএন্ডের মাধ্যমে লোকেশন জানানো হয়, অথবা আপনি অ্যান্ড্রয়েড বা আইওএস ছাড়া অন্য ডিভাইস ব্যবহার করেন। এই নির্দেশিকায় সেই পদ্ধতিটি আলোচনা করা হয়েছে।
গাড়ির অবস্থান আপডেট করার জন্য ড্রাইভার এসডিকে ব্যবহার না করলে, আপনি গাড়ির অবস্থান সহ সরাসরি ফ্লিট ইঞ্জিনে কল করতে পারেন। যেকোনো সক্রিয় গাড়ির জন্য, ফ্লিট ইঞ্জিন প্রতি মিনিটে অন্তত একবার এবং প্রতি ৫ সেকেন্ডে সর্বোচ্চ একবার অবস্থানের আপডেট আশা করে। এই আপডেটগুলির জন্য শুধুমাত্র ফ্লিট ইঞ্জিন ড্রাইভার এসডিকে ব্যবহারকারীর বিশেষাধিকার প্রয়োজন।
গাড়ির অবস্থান আপডেটের উদাহরণ
গাড়ির অবস্থান আপডেট করতে, আপনি জাভা gRPC লাইব্রেরি অথবা REST ব্যবহার করতে পারেন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে। সমর্থিত ভাষাগুলির সম্পূর্ণ তালিকার জন্য, অন-ডিমান্ড ট্রিপ পরিষেবাগুলির জন্য ক্লায়েন্ট লাইব্রেরিগুলি দেখুন।
জাভা
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.
বিশ্রাম
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
}
EOMproviders.vehicles.update রেফারেন্সটি দেখুন।