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

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

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

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

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

حقول الرحلة

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

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

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

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

رحلات التجميع المشترك فقط: يتيح هذا الحقل دمج نقاط الطريق من رحلات متعددة. وتحتوي على جميع نقاط الطريق المتبقية للمركبة المخصصة كنقاط طريق الاستلام والتوصيل لهذه الرحلة. يمكنك ضبط هذا الحقل من خلال الاتصال بالرقم 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;
}

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