वाहन की जगह की जानकारी अपडेट करना

Fleet Engine की बेहतर परफ़ॉर्मेंस के लिए, उसे गाड़ी की जगह की जानकारी से जुड़े अपडेट की स्ट्रीम दें. इन अपडेट को देने के लिए, इनमें से किसी एक तरीके का इस्तेमाल करें:

  1. ड्राइवर SDK टूल का इस्तेमाल करें: सबसे आसान विकल्प. Android या iOS के लिए, Driver SDK टूल का दस्तावेज़ देखें.
  2. कस्टम कोड का इस्तेमाल करें: यह तब काम आता है, जब जगहों को आपके बैकएंड के ज़रिए रिले किया जाता हो या 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 रेफ़रंस देखें.

आगे क्या करना है