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

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

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

يصف هذا القسم تفاصيل الطلب اللازمة لإنشاء رحلة في 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 لا رقم تعريف المركبة المخصّصة للرحلة.

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

يوضح المثال التالي كيفية إنشاء رحلة إلى جراند إندونيسيا إيست مول. تشمل الرحلة راكبَين فقط، وحالتها هي 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;
}

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