تعديل الموقع الجغرافي للمركبة

للحصول على أفضل أداء من Fleet Engine، عليك تزويده بسلسلة من تحديثات الموقع الجغرافي للمركبة. يمكنك تقديم هذه التعديلات بإحدى الطريقتَين التاليتَين:

  1. استخدام Driver SDK: هذا هو الخيار الأبسط. راجِع مستندات Driver SDK لنظام التشغيل Android أو iOS.
  2. استخدام رمز مخصّص: يكون هذا الخيار مفيدًا إذا تم نقل المواقع الجغرافية من خلال الخلفية أو إذا كنت تستخدم أجهزة أخرى غير Android أو iOS. يتناول هذا الدليل هذا النهج.

في حال عدم استخدام حزمة تطوير البرامج (SDK) الخاصة بالسائق لتعديل موقع المركبة، يمكنك إجراء اتصال مباشر بخدمة Fleet Engine مع موقع المركبة. بالنسبة إلى أي مركبة نشطة، تتوقّع Fleet Engine تلقّي تعديل على الموقع الجغرافي مرة واحدة على الأقل كل دقيقة ومرة واحدة على الأكثر كل 5 ثوانٍ. لا تتطلّب هذه التحديثات سوى امتيازات مستخدم حزمة تطوير البرامج (SDK) لسائق Fleet Engine.

مثال على تعديل الموقع الجغرافي للمركبة

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.

الخطوات التالية