به‌روزرسانی مکان خودرو

برای بهترین عملکرد با Fleet Engine، جریانی از به‌روزرسانی‌های مکان خودرو را به آن ارائه دهید. از یکی از روش‌های زیر برای ارائه این به‌روزرسانی‌ها استفاده کنید:

  1. استفاده از Driver SDK: ساده‌ترین گزینه. اسناد Driver SDK را برای Android یا iOS ببینید.
  2. استفاده از کد سفارشی: اگر مکان‌ها ازطریق باطن شما رله می‌شوند یا اگر از دستگاه‌هایی غیراز Android یا iOS استفاده می‌کنید، مفید است. این راهنما این رویکرد را پوشش می‌دهد.

اگر از Driver SDK برای به‌روزرسانی مکان خودرو استفاده نمی‌کنید، می‌توانید تماس مستقیم با Fleet Engine با مکان خودرو برقرار کنید. برای هر خودرو فعال، «موتور ناوگان» انتظار دارد به‌روزرسانی مکان حداقل یک‌بار در هر دقیقه و حداکثر یک‌بار در هر ۵ ثانیه انجام شود. این به‌روزرسانی‌ها فقط به امتیازات کاربر کیت توسعه نرم‌افزار درایور موتور ناوگان نیاز دارند.

نمونه به‌روزرسانی مکان خودرو

برای به‌روزرسانی مکان خودرو، می‌توانید از کتابخانه Java 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.

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 را ببینید.

قدم بعدی چیست