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

للحصول على أفضل أداء مع 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.

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