यात्रा का डेटा वापस पाने पर, आपके बैकएंड को JSON पेलोड मिलते हैं. इनमें ड्राइवर की यात्रा की प्रोग्रेस की जानकारी होती है. इन पेलोड को पार्स करके, यात्रा को मॉनिटर किया जा सकता है. साथ ही, अपने डिस्पैच सिस्टम को अपडेट किया जा सकता है. इसके अलावा, यात्रा के मौजूदा स्टेटस को समझा जा सकता है, ताकि ड्राइवर के लिए अगला चरण तय किया जा सके. ऐसा तब किया जाता है, जब ड्राइवर यात्रा पूरी कर लेता है या यात्रा के दौरान कोई समस्या आती है.
डेटा पेलोड पढ़ना
ड्राइवर के नेविगेट करना शुरू करने पर, Google Maps या Waze, Navigation Connect के सर्वर को यात्रा के डेटा पेलोड भेजता है. इसके अलावा, रास्ते में समय-समय पर (डिफ़ॉल्ट रूप से हर 60 सेकंड में) और ड्राइवर के मंज़िल पर पहुंचने पर भी डेटा पेलोड भेजे जाते हैं. हर JSON मैसेज में, यात्रा का डेटा होता है. इसमें ड्राइवर के रोड-स्नैप्ड कोऑर्डिनेट, तय की गई दूरी, और पहुंचने का अनुमानित समय (ईटीए) शामिल होता है. ये अपडेट, ड्राइवर के ऐक्टिव और रीयल-टाइम रूट को दिखाते हैं. इसलिए, ये आपके बैकएंड से पहले से कैलकुलेट किए गए रूट से अलग हो सकते हैं. ज़्यादा जानकारी के लिए, अक्सर पूछे जाने वाले सवाल देखें.
नीचे दिए गए कोड के सैंपल में, यात्रा के डेटा का पेलोड दिखाया गया है. यह पेलोड तब दिखता है, जब ड्राइवर किंग क्रॉस से सेंट्रल सेंट गिल्स तक की यात्रा के लिए नेविगेशन शुरू करता है.
{
"name": "projects/123456/trips/221B9CD6-4146-4CBF-9556-853817654938",
"state": "ENROUTE",
"execution": {
"origin": {
"point": {
"latitude": 51.5333329,
"longitude": -0.1265845
}
},
"destination": {
"point": {
"latitude": 51.515598,
"longitude": -0.1277623
}
},
"location": {
"point": {
"latitude": 51.5333329,
"longitude": -0.1265845
},
"sourceTime": "2025-05-30T12:37:26Z",
"serverTime": "2025-05-30T12:37:26.221069Z"
},
"traveledDuration": "0s",
"remainingDuration": "990s",
"traveledDistanceMeters": 0,
"remainingDistanceMeters": 2879,
"stopAddedInRoute": false
}
}
चालू यात्राओं की स्थिति पर नज़र रखना
अपलोड शुरू होने की पुष्टि करने और उसकी प्रोग्रेस पर नज़र रखने के लिए, हर पेलोड में स्टेटस फ़ील्ड का आकलन करें.
| स्थिति | ब्यौरा |
|---|---|
NEW |
यात्रा बन गई है, लेकिन ड्राइवर ने अभी तक नेविगेशन शुरू नहीं किया है. |
ENROUTE |
ड्राइवर, मंज़िल तक पहुंचने के लिए नेविगेट कर रहा हो. इस स्टेटस का इस्तेमाल करके पुष्टि करें कि यात्रा की पुष्टि हो गई है और यह सही तरीके से शुरू हो गई है. |
जोड़े गए स्टॉप मैनेज करना
ड्राइवर, नेविगेशन के दौरान अपने रास्ते में स्टॉप जोड़ सकते हैं. अगर ऐसा होता है, तो Navigation Connect, JSON डेटा पेलोड में execution.stopAddedInRoute फ़ील्ड को true पर सेट कर देता है. Navigation Connect API, ड्राइवर को उसकी मूल मंज़िल की ओर ले जाना जारी रखता है. जोड़े गए स्टॉप को शामिल करने के लिए, पहुंचने का अनुमानित समय (ईटीए), दूरी, और अवधि जैसी मेट्रिक बढ़ जाती हैं.
स्टॉप जोड़ने का तरीका, नेविगेशन ऐप्लिकेशन पर निर्भर करता है. यह ऐप्लिकेशन की स्टैंडर्ड सुविधा के मुताबिक होता है:
- Google Maps: ड्राइवर अपने रास्ते में कई स्टॉप जोड़ सकते हैं.
- Waze: ड्राइवर सिर्फ़ एक स्टॉप जोड़ सकते हैं. अगर कोई ड्राइवर एक और स्टॉप जोड़ता है, तो Waze उसे मौजूदा रास्ते में स्टॉप जोड़ने के बजाय, नया नेविगेशन सेशन शुरू करने के लिए कहता है.
इस सुविधा का इस्तेमाल करने के लिए, आपको अपने बैकएंड इनपुट में बदलाव करने की ज़रूरत नहीं है.
पुष्टि करने और शुरू करने से जुड़ी समस्याएं हल करना
अगर आपको ENROUTE स्टेटस नहीं मिलता है, तो हो सकता है कि पुष्टि करने में कोई गड़बड़ी हुई हो. इसकी सामान्य वजहें ये हैं: एपीआई पैरामीटर का गलत स्पेलिंग में होना या यात्रा के टोकन की समयसीमा खत्म हो जाना. अपनी शुरुआती CreateTrip प्रतिक्रिया में टोकन के खत्म होने का समय देखें.
अगर स्थिति NEW से ENROUTE में नहीं बदलती है, तो हो सकता है कि ड्राइवर का डिवाइस पुष्टि होने से रोक रहा हो. इन मामलों में, Navigation Connect गड़बड़ी के मैसेज नहीं भेजता. इनकी पुष्टि करें:
- ड्राइवर के पास Waze का 5.15.5 या इसके बाद का वर्शन या Google Maps का 26.14 या इसके बाद का वर्शन इंस्टॉल हो.
- ड्राइवर, Android Auto या Apple CarPlay का इस्तेमाल नहीं कर रहा है.
- ड्राइवर के पास इंटरनेट कनेक्शन चालू हो.
रास्ते के बचे हुए डेटा को मैनेज करना (सिर्फ़ Waze के लिए)
अगर आपने यात्रा बनाते समय, बचे हुए रास्ते की रिपोर्टिंग की सुविधा चालू की है, तो आपके बैकएंड को ड्राइवर की मौजूदा जगह से लेकर मंज़िल तक के बचे हुए रास्ते की पॉलीलाइन और रीयल-टाइम ट्रैफ़िक की जानकारी मिलती है.
इस डेटा को अपने ऐप्लिकेशन में कई सुविधाओं के लिए इस्तेमाल किया जा सकता है. इसके लिए, आपको इस डेटा को प्रोसेस करना होगा. यहां कुछ उदाहरण दिए गए हैं:
- लाइव ट्रैकिंग मैप की सुविधा चालू करें: ग्राहक को दिखने वाले वेब या मोबाइल मैप पर, बचे हुए रास्ते की पॉलीलाइन रेंडर करें, ताकि उसे ड्राइवर की यात्रा की जानकारी मिल सके.
- ईटीए की सटीकता बढ़ाना: सड़क के हिसाब से स्नैप की गई पॉलीलाइन और ट्रैफ़िक इंटरवल की स्पीड को एक साथ इस्तेमाल करें. इससे, इंटरनल लॉजिस्टिक्स या डिलीवरी के पहुंचने के समय के अनुमान को बेहतर बनाया जा सकता है.
- रूटिंग के नियमों का पालन करने की जांच करना: ड्राइवर के नियमों का पालन करने की जांच करने के लिए, बचे हुए रूट की ज्यामिति की तुलना, शिपिंग के अनुमानित रूट से करें. इस बारे में ज़्यादा जानकारी के लिए, अक्सर पूछे जाने वाले सवाल देखें कि रीयल-टाइम और पहले से तय किए गए रूट अलग-अलग क्यों हो सकते हैं.
Navigation Connect, execution.remainingRoute फ़ील्ड में बाकी बचे रास्ते की जानकारी दिखाता है. भले ही, आपने GetTrip अनुरोध भेजा हो या Google Cloud Pub/Sub का इस्तेमाल करके, इवेंट के हिसाब से अपडेट पाए हों. हालांकि, पेलोड इस डेटा को कैसे फ़ॉर्मैट और स्ट्रक्चर करता है, यह इस बात पर निर्भर करता है कि आपने डेटा पाने के लिए कौनसा तरीका इस्तेमाल किया है.
GetTrip तरीका
GetTrip तरीके को कॉल करने पर, पॉलीलाइन के लिए जवाब का फ़ॉर्मैट इस बात पर निर्भर करता है कि आपने अपने अनुरोध में routePolylineFormat पैरामीटर कौन-सा तय किया है. ज़्यादा जानकारी के लिए, पॉलीलाइन फ़ॉर्मैट को पसंद के मुताबिक बनाना लेख पढ़ें.
सभी पॉलीलाइन फ़ॉर्मैट के लिए, Navigation Connect, ट्रैफ़िक की जानकारी को execution.remainingRoute.trafficInformation फ़ील्ड में SpeedReadingInterval ऑब्जेक्ट की अलग सूची के तौर पर दिखाता है. ये ऑब्जेक्ट, ट्रैफ़िक कैटगरी को पॉलीलाइन इंडेक्स के साथ मैप करते हैं. इसके लिए, ये वैल्यू इस्तेमाल की जाती हैं:
startPolylinePointIndex: पॉलीलाइन पर ट्रैफ़िक इंटरवल का शुरुआती इंडेक्स.endPolylinePointIndex: ट्रैफ़िक इंटरवल का आखिरी इंडेक्स.speed: इस सेगमेंट के लिए ट्रैफ़िक कैटगरी:NORMAL,SLOWयाTRAFFIC_JAM.
Google Cloud Pub/Sub से जुड़े अपडेट
Pub/Sub की मदद से यात्रा का डेटा वापस पाने पर, अपडेट हमेशा बचे हुए रास्ते का डेटा, execution.remainingRoute फ़ील्ड में एक ही GeoJSON FeatureCollection में दिखाते हैं.
इस फ़ॉर्मैट में, पॉलीलाइन ज्यामिति को सीधे तौर पर ट्रैफ़िक की रफ़्तार के साथ जोड़ा जाता है. इससे इंडेक्स को मैन्युअल तरीके से मैप करने की ज़रूरत नहीं होती.
Pub/Sub के पेलोड का उदाहरण देखें
यहां दिए गए कोड सैंपल में, Pub/Sub मैसेज के updatedTrip ऑब्जेक्ट में मौजूद execution.remainingRoute फ़ील्ड में दिखाया गया GeoJSON स्ट्रक्चर दिखाया गया है:
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "LineString", "coordinates": [ [-122.3934, 37.7955], [-122.4010, 37.7980] ] }, "properties": { "speed": "SLOW" } }, { "type": "Feature", "geometry": { "type": "LineString", "coordinates": [ [-122.4010, 37.7980], [-122.4058, 37.8025], [-122.4187, 37.8021] ] }, "properties": { "speed": "NORMAL" } } ] }
पेलोड के साइज़ को ऑप्टिमाइज़ करना
कोऑर्डिनेट ऐरे बड़े होते हैं. इसलिए, Pub/Sub मैसेज में बचे हुए रास्ते का डेटा शामिल करने से, पेलोड का साइज़ काफ़ी बढ़ सकता है. यह हर मैसेज के लिए 13 से 14 केबी तक हो सकता है. अगर आपको बार-बार अपडेट मिलते हैं, तो इससे बैकएंड प्रोसेसिंग लोड और इस्तेमाल की लागत बढ़ सकती है.
अपनी स्ट्रीम को ऑप्टिमाइज़ करने के लिए, यात्रा बनाने के दौरान pubsubFieldMask ऑब्जेक्ट में pubsubFieldMask पैरामीटर का इस्तेमाल करें, ताकि बड़े फ़ील्ड को शामिल न किया जा सके.TripConfig ज़्यादा जानकारी के लिए, वैकल्पिक कॉन्फ़िगरेशन लेख पढ़ें.
यात्रा खत्म होने की स्थितियों को मैनेज करना
जब ड्राइवर मंज़िल पर पहुंच जाता है या नेविगेशन बंद कर देता है, तो पेलोड इनमें से किसी एक स्थिति में पहुंच जाता है. इन स्टेटस का इस्तेमाल करके, अपने ऐप्लिकेशन में अगले ज़रूरी चरणों को ट्रिगर करें.
| स्थिति | ब्यौरा | सुझाई गई कार्रवाई |
|---|---|---|
ARRIVED |
ड्राइवर मंज़िल पर पहुंच गया है. | remainingDistanceMeters देखें. अगर ड्राइवर ने गाड़ी आस-पास पार्क की है, लेकिन सटीक जगह पर नहीं, तो अपने ऐप्लिकेशन में पैदल चलने के निर्देश दें. |
SUSPENDED |
ड्राइवर ने मंज़िल पर पहुंचने से पहले, रास्ते के दिशा-निर्देश को मैन्युअल तरीके से बंद कर दिया था. जब ड्राइवर किसी सेशन से जल्दी बाहर निकल जाते हैं, तो Google Maps या Waze उन्हें अपने-आप आपके ऐप्लिकेशन पर वापस नहीं भेजते. इसलिए, ड्राइवर को 'वापस जाएं' बटन पर मैन्युअल तरीके से टैप करना होगा. |
ड्राइवरों को उनकी यात्रा पूरी करने में मदद करने के लिए, मंज़िल के हिसाब से execution.location की तुलना करें. अगर दूरी बाकी है, तो यात्रा जारी रखने या पैदल चलने के मोड पर स्विच करने के लिए, बटन या लिंक दें. |
FAILED |
तकनीकी गड़बड़ी की वजह से कनेक्शन में रुकावट आई. ऐसा तब होता है, जब ऐप्लिकेशन किसी रास्ते का हिसाब नहीं लगा पाता या सुरक्षा से जुड़ी चेतावनी दिखती है. ऐसा हो सकता है कि ड्राइवर अब भी नेविगेट कर रहा हो, लेकिन आपको अपडेट नहीं मिलेंगे. | अपने ऐप्लिकेशन में, स्टेटस को मैन्युअल तरीके से ट्रैक करने की सुविधा का इस्तेमाल करें. |
CLIENT_ERROR |
यह स्टेटस इनमें से किसी एक वजह से दिखता है:
|
अपने ऐप्लिकेशन में, स्टेटस को मैन्युअल तरीके से ट्रैक करने की सुविधा का इस्तेमाल करें. |