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