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

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

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

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

راحة

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.

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