إنشاء رحلات متتالية

يوضح هذا المستند كيفية إنشاء رحلة متتالية، وتعيين الحقول وتعيينها لمركبة لتنفيذها. من المفترض أنك أعددت Fleet محرّك Google، وقمت بإنشاء مركبات، والحصول على تطبيق سائق قيد التشغيل، اختياريًا، تطبيق المستهلك. ينبغي أن تكون على دراية بالرحلات المختلفة المتاحة للرحلات عند الطلب. اطّلِع على الأدلة التالية ذات الصلة حول الذي:

أساسيات إنشاء الرحلات

يصف هذا القسم تفاصيل الطلب اللازمة لإنشاء رحلة في Fleet Engine يمكنك إصدار طلب إنشاء باستخدام gRPC وREST.

  • طريقة CreateTrip(): gRPC أو REST
  • رسالة CreateTripRequest: gRPC فقط

حقول الرحلة

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

حقول الرحلة
الاسم مطلوب؟ الوصف
أحد الوالدَين نعم سلسلة تتضمّن رقم تعريف المشروع يجب أن يكون رقم التعريف هذا هو نفسه المستخدَم. عبر عملية دمج Fleet Engine بالكامل باستخدام حساب الخدمة نفسه الأدوار.
trip_id نعم سلسلة تنشئها لتحديد هذه الرحلة بشكل فريد تفرض معرّفات الرحلات بعض القيود، كما هو موضّح في المرجع.
trip_type نعم اضبط TripType على القيم التالية لنوع الرحلة التي تريد إنشاؤها:
  • وجهة واحدة: اضبط القيمة على SHARED أو EXCLUSIVE.
  • الوجهات المتعددة: اضبط القيمة على EXCLUSIVE.
  • تسلسل: اضبط القيمة على EXCLUSIVE.
  • التجميع المشترك: اضبط القيمة على SHARED.
pickup_point نعم نقطة انطلاق الرحلة
الوجهات المتوسطة نعم

الرحلات متعددة الوجهات فقط: قائمة الوجهات المتوسطة التي يزورها السائق للاستلام والتسليم. وكما هو الحال مع dropoff_point، فإن هذا الحقل يمكن أيضًا تعيينها لاحقًا عن طريق طلب UpdateTrip، لكن الوجهة متعددة الوجهات تحتوي "الرحلة حسب التعريف" على وجهات متوسطة.

نقاط_الطريق_للمركبة نعم

رحلات التجميع المشترك فقط: يتيح هذا الحقل دمج نقاط الطريق من رحلات متعددة. يحتوي هذا الملف على جميع نقاط التوقف المتبقية للمركبة المحدّدة، بالإضافة إلى نقاط التوقف لتحميل الركاب وإيقافهم في هذه الرحلة. يمكنك ضبط هذا الحقل من خلال الاتصال برقم CreateTrip أو UpdateTrip. يمكنك أيضًا تعديل نقاط طريق المركبة في الحقل waypoints باستخدام مكالمة إلى UpdateVehicle. لا تعرض الخدمة هذه المعلومات في المكالمات على GetTrip بسبب أسباب تتعلّق بالخصوصية.

number_of_passengers لا عدد الركاب في الرحلة
dropoff_point لا وجهة الرحلة.
vehicle_id لا معرّف المركبة المحدّد للرحلة

مثال: إنشاء رحلة متتابعة

يوضح ما يلي كيفية إنشاء رحلة متتالية وتعيينها إلى المركبة. في هذا السيناريو، تكون عملية إنشاء الرحلة مماثلة لرحلة تهدف إلى وجهة واحدة . وبعد ذلك، يمكنك إنشاء رحلة أخرى وإسناد مركبة إليها التي سبق أن كانت في رحلة نشطة.

// A vehicle with ID 'my-vehicle' is already created and it is assigned to a trip with ID 'current-trip'.

static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String VEHICLE_ID =" my-vehicle";
static final String TRIP_ID = "back-to-back-trip");

TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);

String parent = "providers/" + PROJECT_ID;

Trip trip = Trip.newBuilder()
    .setTripType(TripType.EXCLUSIVE)
    .setPickupPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.195139).setLongitude(106.820826)))
    .setDropoffPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.1275).setLongitude(106.6537)))
    .setVehicleId(VEHICLE_ID)
    .build();

// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
    .setParent(parent)
    .setTripId(TRIP_ID)
    .setTrip(trip)
    .build();

// Error handling.
try {
  // Fleet Engine automatically assigns a 'waypoints' list to the trip containing
  // the vehicle's current trip waypoints.
  Trip createdTrip =
      tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

تعديل الرحلات المتتالية

عند تعيين مركبة لرحلة متتالية، يمكنك تعيين رحلة حتى لو تم تخصيص واحدة لها بالفعل.

يجب تخصيص أي رحلة تم إنشاؤها في Fleet Engine لمركبة من أجل Fleet Engine لاحتساب الوقت المقدّر للوصول وتتبّع الرحلات الجوية يمكنك القيام بذلك إما أثناء إنشاء الرحلة أو لاحقًا عند تعديل الرحلة

بعد إسناد الرحلة إلى مركبة، تُضيف Fleet Engine تلقائيًا نقاط التفتيش المرتبطّة بالرحلات المتتالية إلى حقل نقاط التفتيش الخاصة بالمركبة. يحتوي حقل remainingWaypoints للرحلة على قائمة بجميع نقاط الطرق، بما في ذلك تلك الواردة من الرحلات الأخرى التي ستتم زيارتها قبل موعد انطلاق الرحلة.

على سبيل المثال، ننصحك برحلتَين متتاليتَين: الرحلة أ. والرحلة ب. التقطت المركبة المستهلك للرحلة (أ)، وعندما تكون في طريقك إلى مكان التسليم الموقع، يتلقى السائق طلبًا باستلام مستهلك آخر الرحلة التالية، الرحلة ب.

  • يؤدي الاتصال برقم getVehicle() إلى عرض remainingWaypoints التي تحتوي على:
    أ تسليمب استلامب تسليم.
  • إما getTrip() أو معاودة الاتصال onTripRemainingWaypointsUpdated لـ عودة الرحلة أ remainingWaypoints التي تحتوي على:
    الانسحاب:
  • إما getTrip() أو معاودة الاتصال onTripRemainingWaypointsUpdated لـ إرجاع الرحلة ب remainingWaypoints التي تحتوي على:
    الانسحابب استلام الطلب → وب المغادرة.

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