एक के बाद एक ट्रिप बनाएं

यह दस्तावेज़ बताता है कि बैक-टू-बैक यात्रा कैसे बनाएं, सही फ़ील्ड में बदलाव कर सकता है और उसे पूरा करने के लिए किसी वाहन को असाइन कर सकता है. इसमें हम मान लेते हैं कि आपने फ़्लीट सेट अप कर लिया है इंजन, आपके पास वाहन हैं, आपका ड्राइवर ऐप्लिकेशन काम कर रहा है, और विकल्प के तौर पर, उपभोक्ता ऐप्लिकेशन. आपको अलग-अलग यात्राओं की जानकारी भी होनी चाहिए मांग पर उपलब्ध यात्राओं के स्टेटस की जानकारी. इनके लिए नीचे दी गई गाइड देखें के हिसाब से:

यात्रा तैयार करने से जुड़ी बुनियादी बातें

इस सेक्शन में, यात्रा बनाने के लिए ज़रूरी अनुरोध की जानकारी दी गई है फ़्लीट इंजन. gRPC और REST में से किसी एक का इस्तेमाल करके अनुरोध बनाने का अनुरोध किया जाता है.

  • CreateTrip() तरीका: gRPC या REST
  • CreateTripRequest मैसेज: सिर्फ़ gRPC

यात्रा के फ़ील्ड

फ़्लीट इंजन में कोई ट्रिप बनाने के लिए, नीचे दिए गए फ़ील्ड का इस्तेमाल करें. अलग-अलग सोर्स का इस्तेमाल करें अलग-अलग तरह की यात्राओं के लिए फ़ील्ड: एक या कई डेस्टिनेशन, एक के बाद एक या शेयर किए जाने वाले पूलिंग ट्रिप. आपने लोगों तक पहुंचाया मुफ़्त में यात्रा बनाते समय वैकल्पिक फ़ील्ड दे सकते हैं या उन्हें सेट कर सकते हैं जब आप यात्रा अपडेट करते हैं.

यात्रा के फ़ील्ड
नाम ज़रूरी है? ब्यौरा
माता-पिता हां ऐसी स्ट्रिंग जिसमें प्रोजेक्ट आईडी शामिल होता है. यह आईडी, इस्तेमाल किए गए आईडी से मेल खाना चाहिए एक ही सेवा खाते से, 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 नहीं यात्रा के लिए असाइन किए गए वाहन का आईडी.

उदाहरण: एक के बाद एक होने वाली यात्रा बनाएं

बैक-टू-बैक यात्रा बनाने और उसे किसी वाहन. इस स्थिति में, यात्रा बनाने की प्रोसेस, एक डेस्टिनेशन के लिए एक जैसी होगी यात्रा. बाद में ही आपने दूसरी यात्रा बनाई और उसे किसी वाहन को असाइन किया यात्रा की जा सकती है.

// 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;
}

एक के बाद एक होने वाली यात्राओं की जानकारी अपडेट करें

जब आप किसी वाहन को एक के बाद एक यात्रा के लिए असाइन करते हैं, तो आप वाहन की ज़रूरत हो, भले ही उसे पहले से ही असाइन किया जा चुका हो.

फ़्लीट इंजन में बनाई गई किसी भी यात्रा को किसी वाहन को असाइन किया जाना चाहिए, ताकि यात्रा के ETA का हिसाब लगाने और उसे ट्रैक करने के लिए फ़्लीट इंजन. आप ऐसा या तो के दौरान कर सकते हैं यात्रा बनाना या बाद में यात्रा अपडेट करते समय.

किसी वाहन को यात्रा असाइन करने के बाद, Fleet Engine वाहन के वेपॉइंट तक जाने के लिए, बैक-टू-बैक ट्रिप से जुड़े वेपॉइंट फ़ील्ड में डालें. किसी यात्रा के remainingWaypoints फ़ील्ड में वेपॉइंट, जिनमें पहले विज़िट की जाने वाली अन्य यात्राओं के रास्ते भी शामिल हैं का समय हो सकता है.

उदाहरण के लिए, एक के बाद एक होने वाली दो यात्राओं पर विचार करें: यात्रा A और यात्रा B. वाहन ने उपभोक्ता को पिक अप कर लिया है ट्रिप A के लिए और ड्रॉप-ऑफ़ के रास्ते में होने पर ड्राइवर को किसी दूसरे उपभोक्ता को पिक अप करने का अनुरोध मिलता है. अगली यात्रा, यात्रा B.

  • getVehicle() को कॉल करने से remainingWaypoints वापस आएगा जिनमें ये शामिल हैं:
    ड्रॉप-ऑफ़B पिकअपB ड्रॉप-ऑफ़.
  • getTrip() या इसके लिए onTripRemainingWaypointsUpdated कॉलबैक यात्रा A remainingWaypoints लौटाती है जिनमें ये शामिल हैं:
    एक ड्रॉप-ऑफ़.
  • getTrip() या इसके लिए onTripRemainingWaypointsUpdated कॉलबैक यात्रा B remainingWaypoints लौटाती है जिनमें ये शामिल हैं:
    ड्रॉप-ऑफ़B पिकअप → और B ड्रॉप-ऑफ़.

आगे क्या करना है