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

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

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

يوضّح هذا القسم تفاصيل الطلب اللازمة لإنشاء رحلة في 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;
}

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