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

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

  1. Driver 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 रेफ़रंस देखें.

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