इस दस्तावेज़ में, एक के बाद एक दो सफ़र बनाने, सही फ़ील्ड सेट करने, और उसे पूरा करने के लिए किसी वाहन को असाइन करने का तरीका बताया गया है. इसमें मान लिया गया है कि आपने फ़्लीट इंजन सेट अप किया है, गाड़ियां बनाई हैं, ड्राइवर के लिए काम करने वाला ऐप्लिकेशन है, और एक उपभोक्ता ऐप्लिकेशन है. इसके अलावा, आपको मांग पर की जाने वाली यात्राओं के लिए उपलब्ध यात्रा से जुड़े अलग-अलग पहलुओं के बारे में भी जानकारी होनी चाहिए. इस बारे में ज़्यादा जानने के लिए, यहां दी गई गाइड देखें:
- Fleet Engine सेट अप करना
- वाहन बनाना
- यात्रा के अनुरोध की खास जानकारी में, यात्रा के अलग-अलग मामले
यात्रा की जानकारी बनाने के बारे में बुनियादी बातें
इस सेक्शन में, फ़्लीट इंजन में ट्रिप बनाने के लिए ज़रूरी अनुरोध की जानकारी दी गई है. gRPC और REST में से किसी एक का इस्तेमाल करके अनुरोध बनाने का अनुरोध किया जाता है.
यात्रा के फ़ील्ड
Fleet Engine में ट्रिप बनाने के लिए, नीचे दिए गए फ़ील्ड का इस्तेमाल करें. अलग-अलग तरह की यात्राओं के लिए, अलग-अलग फ़ील्ड का इस्तेमाल किया जा सकता है: एक या कई डेस्टिनेशन, एक के बाद एक या शेयर की गई पूलिंग वाली यात्राएं. ट्रिप बनाते समय, वैकल्पिक फ़ील्ड की वैल्यू दी जा सकती है. इसके अलावा, ट्रिप को अपडेट करते समय भी इन फ़ील्ड की वैल्यू दी जा सकती है.
नाम | ज़रूरी है? | ब्यौरा |
---|---|---|
parent | हां | ऐसी स्ट्रिंग जिसमें प्रोजेक्ट आईडी शामिल होता है. यह आईडी वही होना चाहिए जिसका इस्तेमाल आपके फ़्लीट इंजन के पूरे इंटिग्रेशन में किया गया हो और सेवा खाते की भूमिकाएं एक जैसी हों. |
trip_id | हां | आपने जो स्ट्रिंग बनाई है वह इस ट्रिप की खास तौर पर पहचान करती है. यात्रा के आईडी पर कुछ पाबंदियां होती हैं, जैसा कि रेफ़रंस में बताया गया है. |
trip_type | हां | आपको जो यात्रा टाइप बनाना है उसके लिए, TripType को इन वैल्यू पर सेट करें:
|
pickup_point | हां | यात्रा का मूल बिंदु. |
इंटरमीडिएट डेस्टिनेशन | हां | सिर्फ़ एक से ज़्यादा डेस्टिनेशन की यात्राएं: उन जगहों की सूची जहां ड्राइवर पिक अप और ड्रॉप-ऑफ़ के बीच जाता है. |
vehicle_waypoints | हां | सिर्फ़ शेयर की गई पूलिंग यात्राएं: इस फ़ील्ड की मदद से, एक से ज़्यादा यात्राओं के वेपॉइंट इंटरलीव किए जा सकते हैं.
इसमें असाइन किए गए वाहन के लिए बाकी सभी वेपॉइंट मौजूद होते हैं. साथ ही, इस यात्रा के लिए पिक अप और ड्रॉप-ऑफ़ वेपॉइंट भी होते हैं. |
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;
}
एक के बाद एक होने वाली यात्राओं की जानकारी अपडेट करना
जब किसी वाहन को एक के बाद एक दो यात्राओं के लिए असाइन किया जाता है, तो उस वाहन को एक और यात्रा असाइन की जाती है. भले ही, उस वाहन को पहले ही एक यात्रा के लिए असाइन किया जा चुका हो.
Fleet Engine में बनाई गई किसी भी यात्रा को किसी वाहन को असाइन करना ज़रूरी है, ताकि Fleet Engine, यात्रा के ईटीए का हिसाब लगा सके और उसे ट्रैक कर सके. ऐसा, यात्रा बनाने के दौरान या बाद में, यात्रा अपडेट करते समय किया जा सकता है.
किसी वाहन को यात्रा असाइन करने के बाद, Fleet Engine, एक के बाद एक चलने वाली यात्राओं से जुड़े वेपॉइंट को अपने-आप वाहन के वेपॉइंट फ़ील्ड में जोड़ देता है. यात्रा के remainingWaypoints
फ़ील्ड में सभी वेपॉइंट की सूची होती है. इसमें वेपॉइंट भी शामिल होते हैं जिन पर यात्रा के ड्रॉप-ऑफ़ होने से पहले विज़िट किया जाएगा.
उदाहरण के लिए, एक के बाद एक होने वाली दो यात्राओं पर विचार करें: यात्रा A और यात्रा B. वाहन ने उपभोक्ता को यात्रा A के लिए चुना है और वापस अपनी जगह पर जाते समय, ड्राइवर को अगली यात्रा यानी यात्रा B के लिए दूसरे उपभोक्ता को पिक अप करने का अनुरोध मिलता है.
getVehicle()
को कॉल करने पर,remainingWaypoints
फ़ंक्शन दिखता है. इसमें यह जानकारी होती है:
ड्रॉप-ऑफ़ → B पिकअप → B ड्रॉप-ऑफ़.- यात्रा A के लिए,
getTrip()
याonTripRemainingWaypointsUpdated
कॉलबैक,remainingWaypoints
को दिखाता है. इसमें ये चीज़ें शामिल होती हैं:
एक ड्रॉप-ऑफ़. - यात्रा B के लिए,
getTrip()
याonTripRemainingWaypointsUpdated
कॉलबैक, इन चीज़ों के आधार परremainingWaypoints
दिखाता है:
A ड्रॉप-ऑफ़ → B पिकअप → और B ड्रॉप-ऑफ़.