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

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

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

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

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

حقول الرحلة

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

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

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

vehicle_waypoints نعم

الرحلات المشتركة فقط: يتيح هذا الحقل تداخل نقاط التوقف من رحلات متعددة. ويحتوي على جميع نقاط الطريق المتبقية للمركبة المخصصة كنقاط طريق الاستلام والتوصيل لهذه الرحلة. يمكنك ضبط هذا الحقل من خلال الاتصال برقم 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() أو callback onTripRemainingWaypointsUpdated لرحلت أ إلى عرض remainingWaypoints يحتوي على:
    موضع إنزال.
  • إما getTrip() أو معاودة الاتصال onTripRemainingWaypointsUpdated لـ إرجاع الرحلة ب remainingWaypoints التي تحتوي على:
    الانسحابب استلام الطلب → وب المغادرة.

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