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

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

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

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

मांग पर यात्रा का क्या मतलब है?

फ़्लीट इंजन में, यात्रा एक ऐसी ऑन-डिमांड यात्रा दिखाती है, जो परिवहन से जुड़े कई तरह के लक्ष्यों को पूरा कर सकती है. उदाहरण के लिए:

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

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

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

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

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

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

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

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

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

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

खास यात्राएं

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

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

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

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

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

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

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

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

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

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

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

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

यात्रा के लिए वेपॉइंट की सूचियां

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

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

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

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

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

एक मंज़िल की यात्रा

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

कई जगहों की यात्रा

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

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

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

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

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

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

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

यात्रा की स्थिति और उसका लाइफ़साइकल

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

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

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

चालू यात्रा के स्टेटस इनऐक्टिव यात्रा की स्थितियां
NEW
UNKNOWN_TRIP_STATUS
ENROUTE_TO_PICKUP
ARRIVED_AT_PICKUP
ENROUTE_TO_INTERMEDIATE_DESTINATION
ARRIVED_AT_INTERMEDIATE_DESTINATION
ENROUTE_TO_DROPOFF
COMPLETE
CANCELED

यात्रा की स्थिति और बचे हुए वाहन के वेपॉइंट

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

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

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

  • 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 फ़ील्ड में दिखती हैं, लेकिन पूरी हो चुकी या रद्द की गई यात्राएं नहीं दिखतीं.

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