मांग पर की जाने वाली यात्राएं

इस दस्तावेज़ में, Fleet Engine में ऑन-डिमांड यात्रा की सेवा के बारे में बताया गया है. यह माना जाता है कि आपने Fleet Engine क्या है? लेख पढ़ लिया है. साथ ही, आपको Fleet Engine की उस सेवा के बारे में पता है जिसकी आपको ज़रूरत है.

इस दस्तावेज़ को पढ़ते समय, इन बातों का ध्यान रखें:

  • यात्रा और उस यात्रा को पूरा करने वाले ड्राइवर के बीच के असली संबंध को मॉडल करने के लिए, वाहनों को यात्राएं असाइन की जाती हैं. Fleet Engine में वाहन कैसे काम करते हैं, यह बेहतर तरीके से समझने के लिए, वाहनों के बारे में जानकारी पढ़ें.
  • इस दस्तावेज़ में, वाहन के कुछ ऐसे एलिमेंट के बारे में भी बताया गया है जो सिर्फ़ ऑन-डिमांड यात्राओं पर लागू होते हैं.
  • ऑन-डिमांड यात्राओं के लिए, फ़्लीट इंजन दो रिसॉर्स का इस्तेमाल करता है: एक Trip और एक Vehicle. Fleet Engine, gRPC सेवा और REST इंटरफ़ेस, दोनों उपलब्ध कराता है:
    • TripService: gRPC और REST
    • VehicleService: gRPC और REST
    • आसानी से समझने के लिए, इस मैन्युअल में gRPC के उदाहरणों का इस्तेमाल किया गया है.

मांग पर उपलब्ध यात्रा क्या होती है?

Fleet Engine में, यात्रा का मतलब मांग पर की जाने वाली यात्रा से है. इससे, परिवहन के कई लक्ष्यों को हासिल किया जा सकता है. उदाहरण के लिए:

  • लोग: एक या उससे ज़्यादा लोगों को पिकअप करने की जगह से ड्रॉप-ऑफ़ की जगह तक ले जाना.
  • खाना और सामान: किसी कारोबार की जगह से एक या उससे ज़्यादा खाने के ऑर्डर उठाएं और उन्हें एक या उससे ज़्यादा लोगों को उनकी जगह पर पहुंचा दें.

यात्रा के एलिमेंट

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

यात्राओं के लिए डेटा मॉडल

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

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

यात्रा का डेटा मॉडल

वाहन का डेटा मॉडल

यात्रा के टाइप

जब आपकी सेवा कोई ट्रिप बनाती है, तो वह tripType फ़ील्ड को इनमें से किसी एक के तौर पर सेट कर सकती है: EXCLUSIVE या SHARED.

खास यात्राएं

खास यात्रा वह होती है जो किसी दूसरी यात्रा के साथ ओवरलैप न होती हो. साथ ही, वह यात्रा जिसे वाहन अपने शेड्यूल में शामिल अन्य यात्राओं से पहले या बाद में पूरा करता हो. इसका मतलब है कि जब आपका सिस्टम खास यात्राएं असाइन करता है, तो उन्हें किसी वाहन को एक के बाद एक असाइन किया जा सकता है, न कि एक साथ. उदाहरण के लिए, खास ट्रिप बनाने के लिए, इनमें से किसी भी विशेषता का इस्तेमाल किया जा सकता है:

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

शेयर की गई यात्राएं

शेयर की गई यात्रा का मतलब है कि यात्रा की अवधि, यात्रा की अन्य बुकिंग की अवधि से मेल खा सकती है. इन यात्राओं के लिए, आपका सिस्टम उन्हें एक साथ होने के लिए असाइन कर सकता है. साथ ही, इनमें एक से ज़्यादा डेस्टिनेशन शामिल किए जा सकते हैं. उदाहरण के लिए, हो सकता है कि एक यात्रा के लिए, यात्री को एक जगह से छोड़ा जाए और दूसरी यात्रा के लिए, उसे दूसरी जगह से पिकअप किया जाए. इसके अलावा, शेयर की गई यात्राओं में, बीच में पड़ने वाले वेपॉइंट का इस्तेमाल नहीं किया जा सकता.

आम तौर पर, शेयर की गई यात्रा का इस्तेमाल, यात्रा के उदाहरण सेक्शन में बताए गए, शेयर किए गए पूल की किसी स्थिति के लिए किया जाता है.

यात्रा के दौरान रुकने की जगहें

Google Maps के लिए, रास्ते में पड़ने वाली जगह को वेपॉइंट कहा जाता है. आम तौर पर, इसे अक्षांश/देशांतर के निर्देशांक से दिखाया जाता है. ऑन-डिमांड यात्राओं के लिए, किसी रास्ते के पड़ाव को TripWaypoint ऑब्जेक्ट से दिखाया जाता है. इसमें ज़्यादा जानकारी होती है, जैसे कि:

  • ट्रिप आईडी
  • WaypointType, पिकअप, इंटरमीडिएट या ड्रॉप-ऑफ़
  • यात्रा के पिछले और मौजूदा व्यूपॉइंट के बीच के पाथ और दूरी की जानकारी
  • यात्रा के वेपॉइंट के रास्ते पर ट्रैफ़िक की स्थिति
  • यात्रा के दौरान, रास्ते में पड़ने वाले वेपॉइंट तक पहुंचने में लगने वाला समय और पहुंचने का अनुमानित समय

रेफ़रंस देखें:

यात्रा के वेपॉइंट के टाइप

किसी यात्रा के वेपॉइंट को, वाहन की यात्रा के सामान्य लाइफ़साइकल के हिसाब से तय किया जाता है:

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

यात्रा के बीच में रुकने की जगहों की सूचियां

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

  • वाहन के लिए बचे हुए वेपॉइंटvehicle_waypoints नाम का फ़ील्ड. इसमें वाहन को असाइन की गई सभी यात्राओं के लिए, बाकी बचे सभी वेपॉइंट शामिल होते हैं.
  • यात्रा के लिए बचे हुए वेस्टपॉइंटremaining_waypoints नाम का फ़ील्ड. इसमें वे रास्ते शामिल होते हैं जिन पर वाहन को यात्रा के आखिरी स्टॉप से पहले जाना होता है. यात्रा की स्थितियां में स्थितियां देखें.
    • अगर किसी वाहन को सिर्फ़ एक मंज़िल वाली ऐसी यात्रा के लिए असाइन किया गया है जिसके शेड्यूल में कोई और यात्रा शामिल नहीं है, तो इसमें सिर्फ़ पिकअप और ड्रॉप-ऑफ़ की जगह शामिल होगी. ऐसा तब माना जाएगा, जब वाहन पिकअप वेपॉइंट से नहीं निकला हो.
    • अगर किसी यात्रा के लिए वाहन को दूसरी यात्राओं के लिए भी शेड्यूल किया गया है, तो उसकी यात्रा की योजना में मौजूद किसी भी यात्रा के बाकी बचे वेपॉइंट में, दूसरी यात्राओं के वे सभी वेपॉइंट शामिल होंगे जिन पर वाहन को उस यात्रा के ड्रॉप-ऑफ़ वेपॉइंट तक पहुंचने से पहले जाना होगा. उदाहरण के लिए, एक के बाद एक की जाने वाली यात्रा में, जब वाहन यात्रा A के लिए यात्री को छोड़ने के रास्ते पर हो, तो यात्रा B के बाकी वॉइसपॉइंट में, यात्रा A के लिए यात्री को छोड़ने का वॉइसपॉइंट शामिल होगा. Fleet Engine, vehicle_waypoints फ़ील्ड का इस्तेमाल करके इस जानकारी का हिसाब लगाता है.

Trip इकाई के लिए रेफ़रंस देखें: gRPC या REST.

यात्रा की स्थितियां

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

एक ही डेस्टिनेशन की यात्रा

सिंगल-डेस्टिनेशन ट्रिप, एक ऐसी EXCLUSIVE ट्रिप होती है जिसमें एक राइड के लिए, एक बार में एक जगह से पिकअप और एक जगह पर ड्रॉप-ऑफ़ किया जाता है. उदाहरण के लिए, कोई ड्राइवर किसी यात्री को एक जगह से दूसरी जगह ले जाता है या किसी रेस्टोरेंट से खाना डिलीवर करने का ऑर्डर लेकर, उसे ग्राहक तक पहुंचाता है.

एक से ज़्यादा जगहों की यात्राएं

एक से ज़्यादा डेस्टिनेशन वाली यात्रा, ऐसी EXCLUSIVE यात्रा होती है जिसमें पिकअप और ड्रॉप-ऑफ़ जगहों के बीच एक या एक से ज़्यादा डेस्टिनेशन होते हैं. उदाहरण के लिए, एक व्यक्ति के फ़ोन से तीन लोग एक साथ, एक ही जगह से एक ही समय पर, अलग-अलग जगहों के लिए एक साथ सफ़र बुक करते हैं.

एक के बाद एक यात्राएं

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

ये यात्राएं सिर्फ़ उन वाहनों के लिए असाइन की जा सकती हैं जिनके लिए एक के बाद एक शेड्यूल करने की सुविधा उपलब्ध हो. Vehicle REST, gRPC रेफ़रंस देखें.

शेयर की गई पूल की गई यात्राएं

शेयर की गई पूलिंग वाली यात्रा, अन्य यात्राओं से अलग होती है. सबसे पहले, यह SHARED ट्रिप होनी चाहिए, न कि EXCLUSIVE ट्रिप. यहां वाहन, खास यात्राओं की तरह क्रम से नहीं, बल्कि एक साथ कई यात्राएं करता है. शेयर की गई पूलिंग वाली यात्रा, अपनी यात्रा की जानकारी अन्य यात्राओं के साथ शेयर करती है. हालांकि, यह पिकअप और रीडॉप की जगह की जानकारी, यात्राओं के बीच शेयर नहीं करती. इसके बजाय, हर यात्रा के लिए एक अलग बुकिंग की जाती है. इसलिए, जिस उपयोगकर्ता ने एक यात्रा के लिए बुकिंग की है वह अपनी यात्रा के अलावा, किसी और यात्रा के लिए, पिकअप या डेस्टिनेशन की जानकारी नहीं देख सकता. उदाहरण के लिए:

  • एयरपोर्ट शटल सेवा, कई ग्राहकों को उनके घर से पिक अप करती है और उन्हें रास्ते में पड़ने वाले एयरपोर्ट के अलग-अलग टर्मिनल पर छोड़ती है. दूसरा व्यक्ति, सफ़र की प्रोग्रेस को ट्रैक करने के लिए आपके उपभोक्ता ऐप्लिकेशन का इस्तेमाल कर सकता है. हालांकि, उसका ऐप्लिकेशन सिर्फ़ उसकी यात्रा का हिस्सा दिखाता है. इसमें यह नहीं दिखता कि पहले व्यक्ति को कहां से पिकअप किया गया था और उसे कहां छोड़ा जाएगा. भले ही, दोनों की यात्रा का कुछ हिस्सा ओवरलैप हो.
  • खाना डिलीवरी करने वाला ड्राइवर, एक ही रेस्टोरेंट से तीन खाना ऑर्डर लेता है, ताकि वह अलग-अलग ग्राहकों के घर पर डिलीवरी कर सके. आपके उपभोक्ता ऐप्लिकेशन का इस्तेमाल करके, तीसरा व्यक्ति यह देख सकता है कि उसका खाना कहां और कब उठाया गया था. साथ ही, वह ड्राइवर के रास्ते की जानकारी भी देख सकता है. हालांकि, वह पहले और दूसरे व्यक्ति के लिए, खाना डिलीवर करने की जगहों की जानकारी नहीं देख सकता.

ट्रिप का स्टेटस और उसका लाइफ़साइकल

इस सेक्शन में, सफ़र की स्थिति और वाहन पर पड़ने वाले असर के बारे में बताया गया है. साथ ही, ऑन-डिमांड सफ़र असाइन करने और मैनेज करने के दौरान, आपको मिलने वाली अलग-अलग स्थितियों के बारे में भी बताया गया है.

आम तौर पर, किसी ट्रिप को बनाने से लेकर पूरा होने तक, कई स्टेटस से गुज़रना पड़ता है. आम तौर पर, किसी ट्रिप की स्थिति के आधार पर उसे चालू या बंद माना जा सकता है. यात्रा की स्थिति, Fleet Engine के इस्तेमाल के कई उदाहरणों पर असर डालती है. साथ ही, इससे आपको यात्रा के दौरान वाहन की स्थिति की जानकारी भी मिलती है. इस दस्तावेज़ के बाकी हिस्से में, इन स्थितियों के बारे में बताया गया है.

यहां दी गई टेबल में, चालू और बंद ट्रिप की स्थिति की सूची दी गई है.

यात्रा के चालू होने का स्टेटस यात्रा के बंद होने की स्थिति
NEW
UNKNOWN_TRIP_STATUS
ENROUTE_TO_PICKUP
ARRIVED_AT_PICKUP
ENROUTE_TO_INTERMEDIATE_DESTINATION
ARRIVED_AT_INTERMEDIATE_DESTINATION
ENROUTE_TO_DROPOFF
COMPLETE
CANCELED

यात्रा की स्थिति और गाड़ी के लिए बचे हुए रास्ते में रुकने के लिए जगहें

अगर किसी ऐसे वाहन को और यात्राएं असाइन की जा रही हैं जो पहले से ही यात्रा कर रहा है, तो आपको वाहन के बाकी बचे व्यू पॉइंट के बीच के संबंध को समझना चाहिए. साथ ही, यह भी समझना चाहिए कि यात्रा की स्थिति का उन बाकी बचे व्यू पॉइंट पर क्या असर पड़ता है.

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

वाहन की यात्रा के दौरान, Fleet Engine किसी पिछली यात्रा के वेपॉइंट को, वाहन के बाकी वेपॉइंट की सूची से सिर्फ़ तब हटाता है, जब वाहन से यह जानकारी मिलती है कि वह अगले डेस्टिनेशन पर जा रहा है या यात्रा पूरी हो गई है. यानी, इनमें से कोई भी:

  • ENROUTE_TO_INTERMEDIATE_DESTINATION
  • ENROUTE_TO_DROPOFF
  • पूरा हुआ

जब यात्रा की स्थिति COMPLETED पर सेट हो जाती है, तो Fleet Engine, वाहन के बाकी बचे व्यूपॉइंट की सूची से, यात्रा के आखिरी व्यूपॉइंट को हटा देता है.

इसके उलट, किसी वेपॉइंट पर पहुंचने के स्टेटस में होने वाले बदलावों का, वाहन के बाकी वेपॉइंट की सूची पर आम तौर पर कोई असर नहीं पड़ता:

  • ARRIVED_AT_PICKUP
  • ARRIVED_AT_INTERMEDIATE_DESTINATION
  • ARRIVED_AT_DROPOFF

ऑन-डिमांड राइड के उदाहरण से समझाने के लिए: मान लें कि ड्राइवर किसी ग्राहक को उसके घर से पिकअप करके, किसी जगह पर छोड़ता है. वहां ग्राहक कोई काम करता है और ड्राइवर उसे वापस उसके घर छोड़ता है. शुरुआत में बनाई गई यात्रा में तीन वेपॉइंट होते हैं: PICKUP, INTERMEDIATE, और DROPOFF. यहां दी गई टेबल में, यात्रा के अलग-अलग स्टेटस में बचे हुए वेपॉइंट के लिए क्वेरी के नतीजे दिखाए गए हैं:

यात्रा की स्थिति बाकी बचे वेपॉइंट
ARRIVED_AT_PICKUP PICKUP
INTERMEDIATE
DROPOFF
ENROUTE_TO_INTERMEDIATE_DESTINATION PICKUP
INTERMEDIATE
DROPOFF
ARRIVED_AT_INTERMEDIATE_DESTINATION PICKUP
INTERMEDIATE
DROPOFF
ENROUTE_TO_DROPOFF PICKUP
INTERMEDIATE
DROPOFF
ARRIVED_AT_DROPOFF PICKUP
INTERMEDIATE
DROPOFF
COMPLETE PICKUP
INTERMEDIATE
DROPOFF

फिर से असाइन की गई या रद्द की गई यात्राओं की स्थिति से जुड़ी ज़रूरी शर्तें

इनमें से कोई भी काम करने से पहले, आपको ट्रिप का स्टेटस NEW या CANCELED पर सेट करना होगा.

  • यात्रा के लिए वाहन असाइनमेंट बदलते समय. उदाहरण के लिए, अगर कोई ड्राइवर किसी सफ़र के लिए वाहन असाइन करने का अनुरोध अस्वीकार करता है और उसे किसी दूसरे वाहन के लिए असाइन करना पड़ता है.
  • किसी यात्रा के लिए वाहन का असाइनमेंट हटाते समय. उदाहरण के लिए, अगर कोई ड्राइवर रास्ते में सफ़र रद्द करता है और आपको वाहन का असाइनमेंट हटाना है, तो स्थिति NEW या CANCELED होनी चाहिए.

यात्रा की स्थिति के आधार पर खोज के नतीजे

किसी खास वाहन के लिए SearchTrips सेवा का इस्तेमाल करने पर, यह SearchTripsResponse में चालू यात्राओं की सूची दिखाती है. चालू यात्राएं, Vehicle इकाई के active_trips फ़ील्ड में भी दिखती हैं. ज़्यादा जानकारी के लिए, SearchTripsResponse gRPC या REST का रेफ़रंस देखें.

इसलिए, active_trips फ़ील्ड में ऐसी सभी यात्राएं दिखती हैं जिनकी स्थिति 'चालू है' है. हालांकि, पूरी हो चुकी या रद्द की गई यात्राएं नहीं दिखती हैं.

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