إنشاء رحلة إلى وجهة واحدة

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

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

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

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

حقول الرحلة

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

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

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

vehicle_waypoints نعم

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

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

مثال: رحلة ذات وجهة واحدة

يوضّح المثال التالي كيفية إنشاء رحلة إلى Grand Indonesia East Mall. تتضمّن الرحلة راكبَين، وهي حصرية، وحالتها هي NEW. يجب أن يكون provider_id للرحلة هو نفسه معرّف مشروع Google Cloud. تعرض الأمثلة مشروعًا على Google Cloud بمعرّف المشروع my-rideshare-co-gcp-project. يجب أن يتضمّن هذا المشروع أيضًا حساب خدمة لاستدعاء Fleet Engine. اطّلِع على أدوار حسابات الخدمة لمعرفة التفاصيل.

static final String PROJECT_ID = "my-rideshare-co-gcp-project";

TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);

// Trip initial settings.
String parent = "providers/" + PROJECT_ID;

Trip trip = Trip.newBuilder()
    .setTripType(TripType.EXCLUSIVE) // Use TripType.SHARED for carpooling.
    .setPickupPoint(                 // Grand Indonesia East Mall.
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.195139).setLongitude(106.820826)))
    .setNumberOfPassengers(2)
    // Provide the drop-off point if available.
    .setDropoffPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.1275).setLongitude(106.6537)))
    .build();

// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
    .setParent(parent)
    .setTripId("trip-8241890")  // Trip ID assigned by the provider.
    .setTrip(trip)              // The initial state is NEW.
    .build();

// Error handling.
try {
  Trip createdTrip = tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

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