यह गाइड किसके लिए है: अगर आप मोबाइल डेवलपर हैं और आपको ट्रक, बस या अन्य बड़े व्यावसायिक वाहनों के ड्राइवरों के लिए, रास्ते के दिशा-निर्देशों की सुविधा बनानी है, तो यह गाइड पढ़ें.
इस गाइड में क्या शामिल है: इस गाइड में, Routes API या Route Optimization API से जनरेट किए गए ट्रक के लिए खास रास्ते को इस्तेमाल करने का तरीका बताया गया है. साथ ही, Navigation SDK for Android की मदद से, रास्ते के दिशा-निर्देशों वाले नेविगेशन सेशन को बेहतर बनाने का तरीका बताया गया है.
आपको क्या सीखने को मिलेगा
आपको इन टास्क को पूरा करने का तरीका पता चलेगा:
routeTokenका इस्तेमाल करें, ताकि बैकएंड रूट प्लानिंग को ऐप्लिकेशन में नेविगेशन की सुविधा से जोड़ा जा सके.- ट्रक के लिए पहले से तय किए गए रास्ते का इस्तेमाल करने के लिए, Navigation SDK टूल को कॉन्फ़िगर करें.
- ट्रक के लिए पाबंदियां, ड्राइवर को नेविगेशन यूज़र इंटरफ़ेस (यूआई) में कैसे दिखती हैं, यह समझें.
ज़रूरी शर्तें
शुरू करने से पहले, पक्का करें कि आपने ये ज़रूरी शर्तें पूरी की हों:
1. अपने प्रोजेक्ट के लिए ऐक्सेस का अनुरोध करना
बड़े वाहनों के लिए रूटिंग की सुविधा, कुछ ही ग्राहकों के लिए उपलब्ध है. अपने Google Cloud प्रोजेक्ट के लिए, इस सुविधा में दिलचस्पी दिखाने और ऐक्सेस का अनुरोध करने के लिए, संपर्क फ़ॉर्म भरें. Google का कोई प्रतिनिधि आपसे संपर्क करके, आगे की प्रोसेस के बारे में बताएगा.
Google से ऐक्सेस मिलने के बाद, पक्का करें कि आपके Google Cloud प्रोजेक्ट में बड़े वाहनों के लिए रूटिंग की सुविधा उपलब्ध हो.
अगर आपका संगठन, बैकएंड रूटिंग एपीआई और मोबाइल नेविगेशन एसडीके के लिए अलग-अलग Google Cloud प्रोजेक्ट इस्तेमाल करता है, तो हर प्रोजेक्ट को सेट अप करने के लिए Google से संपर्क करें.
2. बैकएंड रूट जनरेशन सेट अप करना और रूट टोकन पाना
डिवाइस पर नेविगेशन शुरू करने से पहले, आपके बैकएंड सर्वर को ट्रक का रूट जनरेट करना होगा. साथ ही, इनमें से किसी एक एपीआई का इस्तेमाल करके routeToken पाना होगा:
- Routes API: इसका सुझाव, शुरुआत की जगह और मंज़िल के बीच ट्रक के लिए एक रूट का हिसाब लगाने के लिए दिया जाता है. सेटअप करने के निर्देशों के लिए, बड़े वाहनों के लिए रास्ते और ईटीए जनरेट करना लेख पढ़ें.
- Route Optimization API: इसका सुझाव, कई स्टॉप वाले रास्तों को ऑप्टिमाइज़ करने के लिए दिया जाता है. ज़्यादा जानकारी के लिए, Route Optimization API large vehicle routing guide देखें.
आपके बैकएंड अनुरोध में, वाहन की फ़िज़िकल विशेषताओं (ऊंचाई, चौड़ाई, लंबाई, वज़न, एक्सल की संख्या, और खतरनाक सामान) के साथ-साथ travelMode: TRUCK की जानकारी भी होनी चाहिए. राउटिंग एपीआई, अपने जवाब में routeToken दिखाता है. इसे आपका बैकएंड सर्वर, आपके मोबाइल ऐप्लिकेशन को भेजता है.
3. SDK टूल और सिस्टम से जुड़ी ज़रूरी शर्तें पूरी करना
आपके ऐप्लिकेशन में, Navigation SDK का कम से कम 5.2.0 या इसके बाद का वर्शन इस्तेमाल किया जाना चाहिए.इसके अलावा, आपके प्रोजेक्ट को Navigation SDK सेटअप करने से जुड़ी ज़रूरी शर्तें पूरी करनी होंगी.
सीमाएं और ऑपरेशनल दिशा-निर्देश
शुरू करने से पहले, इन सीमाओं और दिशा-निर्देशों को ध्यान में रखें:
- देश/इलाके के हिसाब से उपलब्धता: बड़े वाहनों के लिए रूटिंग की सुविधा, अमेरिका के 48 राज्यों (सामान्य रूप से उपलब्ध) और जापान (प्रयोग के तौर पर उपलब्ध) में उपलब्ध है. यह अलास्का, हवाई या अमेरिकी क्षेत्रों में उपलब्ध नहीं है.
- ड्राइवर के लिए सलाह और सुरक्षा: ड्राइवर को सुरक्षित या कानूनी तौर पर सही होने के लिए, सिर्फ़ Navigation SDK से मिले रास्तों पर भरोसा नहीं करना चाहिए. ऐसा हो सकता है कि सड़क की सभी स्थितियों में, रास्ते वाहन के लिए सही न हों. इन रास्तों पर चलने से, ड्राइवर को कम ऊंचाई या वज़न की पाबंदी वाली सड़कों जैसे खतरों का सामना करना पड़ सकता है. ड्राइवर को हमेशा सतर्क रहना चाहिए. साथ ही, सड़क पर लगे संकेतों और स्थानीय नियमों का पालन करना चाहिए.
- सबसे सही रास्ते: जब Routing API को ऐसा रास्ता नहीं मिलता जो वाहन से जुड़ी पाबंदियों का पूरी तरह से पालन करता हो, तो वह "सबसे सही" रास्ता दिखाता है. हालांकि, हो सकता है कि इस रास्ते में अब भी पाबंदी वाले सेगमेंट शामिल हों. उदाहरण के लिए, Routes API अपने जवाब में
routeRestrictionsPartiallyIgnoredफ़्लैग सेट करता है. इन रास्तों पर नेविगेट करते समय, Navigation SDK रास्ते के कॉलआउट दिखाता है, ताकि पाबंदियों को हाइलाइट किया जा सके. ऐसे मामलों में, रास्तों को ध्यान से प्लान करें. साथ ही, प्लान बनाने या नेविगेशन के लिए, फ़्लैग किए गए रास्ते को एकमात्र भरोसेमंद सोर्स के तौर पर इस्तेमाल न करें. - इस्तेमाल न की जा सकने वाली सुविधाएं: बड़े वाहन के लिए रास्ता दिखाने की सुविधा के साथ, ये सुविधाएं इस्तेमाल नहीं की जा सकतीं:
- ट्रक के लिए टोल की कीमत
- ट्रक या भारी वाहन के लिए तय की गई स्पीड लिमिट
- रेडियोऐक्टिव खतरनाक पदार्थों के लिए रूटिंग
- इस्तेमाल करने की सीमाएं: Navigation SDK टूल को किए गए अनुरोध, इस्तेमाल करने की सामान्य सीमाओं और कोटे की सीमाओं के मुताबिक होते हैं. ज़्यादा जानकारी के लिए, इस्तेमाल और बिलिंग देखें.
ट्रक के लिए यूज़र इंटरफ़ेस (यूआई) दिखाना (रास्ते के कॉलआउट)
Navigation SDK, मैप पर विज़ुअल चेतावनियां अपने-आप दिखाता है. इन्हें रूट कॉलआउट कहा जाता है. इनसे ड्राइवर को ट्रक पर लगी पाबंदियों के बारे में पहले से पता चल जाता है. कॉलआउट, तय किए गए रास्ते पर लगी पाबंदियों के लिए दिखते हैं. हालांकि, आस-पास की अन्य सड़कों पर लगी पाबंदियों के लिए नहीं दिखते.
Navigation SDK में, इन पाबंदियों के लिए कॉलआउट शामिल हैं:
| पाबंदी | कॉलआउट आइकॉन और टेक्स्ट | दिखाने की शर्तें |
|---|---|---|
| ऊंचाई |
पीला = चेतावनी, आपके वाहन की ऊंचाई, तय की गई ज़्यादा से ज़्यादा ऊंचाई के करीब है
लाल = आपके वाहन की ऊंचाई, तय की गई ज़्यादा से ज़्यादा ऊंचाई से ज़्यादा है |
जब वाहन की ऊंचाई, तय की गई सीमा के करीब होती है, तो पीले रंग का कॉलआउट दिखता है.
अगर रास्ता, ऊंचाई की पाबंदी का पालन नहीं करता है और उसका उल्लंघन करता है, तो लाल रंग का कॉलआउट दिखता है.
|
| वैल्यू |
|
जब वाहन का वज़न सड़क की तय सीमा से ज़्यादा होता है, तब लाल रंग का कॉलआउट दिखता है.
|
| ट्रक प्रतिबंधित हैं |
|
कमर्शियल ट्रक पर पाबंदी वाले सड़क के सेगमेंट पर यात्रा करने पर, लाल रंग का कॉलआउट दिखता है.
|
| खतरनाक सामान |
|
जब किसी सड़क पर खतरनाक सामान ले जाने वाले वाहन पर पाबंदी होती है, तो लाल रंग का कॉलआउट दिखता है.
|
रूट टोकन कैसे काम करते हैं
routeToken, Google के रूटिंग बैकएंड से बनाए गए रूट का एन्क्रिप्ट (सुरक्षित) किया गया स्नैपशॉट होता है. इसमें तय किए गए रास्ते की ज्यामिति के साथ-साथ, वाहन के डाइमेंशन और पाबंदी की प्रोफ़ाइल की जानकारी शामिल होती है.
वर्कफ़्लो में ये चरण शामिल हैं:
- रूट का अनुरोध करना: आपका बैकएंड सर्वर, Routes API (या Route Optimization API) से ट्रक के रूट का अनुरोध करता है.
- टोकन पाना: रूटिंग एपीआई, नियमों का पालन करने वाले रूट का हिसाब लगाता है और आपके बैकएंड सर्वर को
routeTokenदिखाता है. - टोकन फ़ॉरवर्ड करना: आपका बैकएंड सर्वर,
routeTokenऔर डेस्टिनेशन के निर्देशांकों को आपके मोबाइल ऐप्लिकेशन को भेजता है. - एसडीके टूल को पास करना: मोबाइल ऐप्लिकेशन,
routeTokenको Navigation SDK को पास करता है. - निर्देश देना शुरू करना: Navigation SDK, मोड़-दर-मोड़ निर्देश देने की सुविधा से जुड़े सभी पहलुओं को मैनेज करता है. इसमें रास्ते के कॉलआउट रेंडर करना और वाहन से जुड़ी पाबंदियों के हिसाब से, डाइनैमिक तरीके से रास्ता बदलना शामिल है.
डाइनैमिक तरीके से फिर से हिसाब लगाने और रास्ता बदलने की सुविधा
नेविगेशन के दौरान, ट्रैफ़िक की स्थिति, सड़क बंद होने या टर्न छूट जाने की वजह से, वाहन तय किए गए रास्ते से भटक सकता है.
रास्ता बदलने पर:
- Navigation SDK, मंज़िल तक पहुंचने के लिए रास्ते का हिसाब अपने-आप लगाता है.
- एसडीके, ओरिजनल
routeTokenमें एन्कोड किए गए वाहन के एट्रिब्यूट और डाइमेंशन को सेव रखता है. - नए रास्ते में कम ऊंचाई वाले पुल, वज़न की सीमा वाले पुल, और कमर्शियल ट्रक के लिए प्रतिबंधित सड़कें शामिल नहीं हैं.
लागू करना: ट्रक के लिए यात्रा शुरू करना
बड़े वाहन के रूट टोकन के साथ, रास्ते के दिशा-निर्देशों की सुविधा को शुरू करने और चालू करने के लिए, यह तरीका अपनाएं.
पहला चरण: अपने बैकएंड से रूट टोकन पाना
आपके मोबाइल ऐप्लिकेशन को बैकएंड सर्वर से, डेस्टिनेशन के निर्देशांकों के साथ-साथ routeToken स्ट्रिंग मिलती है. अपने सर्वर पर यह टोकन जनरेट करने के बारे में ज़्यादा जानने के लिए, Routes API के दस्तावेज़ में बड़े वाहनों के लिए रास्ते और ईटीए जनरेट करना लेख पढ़ें.
यहां दिया गया कोड, रूट टोकन का एक उदाहरण है:
{
"routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g"
}
दूसरा चरण: रूट टोकन की मदद से डेस्टिनेशन सेट करना
routeToken को navigator.setDestinationsWithToken पर सेट करें. नेविगेशन SDK, रूट टोकन से डेस्टिनेशन की जानकारी लेता है. साथ ही, TRUCK रूटिंग प्रोफ़ाइल से भी जानकारी लेता है. इससे, बड़े वाहनों पर लागू होने वाली पाबंदियों को लागू करने का निर्देश मिलता है.
आपको वेपॉइंट पास करने या यात्रा का मोड सेट करने की ज़रूरत नहीं है.
Routes API के उस अनुरोध में वेपॉइंट के विकल्प सेट करें जिससे रूट टोकन बनता है. Navigation SDK, टोकन से इन जगहों की जानकारी हासिल करता है. साथ ही, आपकी मंज़िलों की जानकारी भी हासिल करता है. बड़े वाहनों के लिए, ये विकल्प चुनें:
- सड़क के किनारे रूटिंग: बड़े व्यावसायिक वाहन, संकरी गलियों में आसानी से यू-टर्न नहीं ले सकते. यह पक्का करने के लिए कि ट्रक, सड़क के सही तरफ़ से मंज़िल तक पहुंचे, मंज़िल के वेपॉइंट पर
sideOfRoadकोtrueपर सेट करें. - वाहन के स्टॉपओवर: ट्रक को रोकने या सामान उतारने के लिए सही जगह पर ले जाने के लिए, डेस्टिनेशन वेपॉइंट पर
vehicleStopoverकोtrueपर सेट करें. - नेविगेशन पॉइंट: अगर आपकी मंज़िल पर ढुलाई के लिए कोई खास एंट्री पॉइंट या लोडिंग डॉक है, तो नेविगेशन पॉइंट टोकन का इस्तेमाल करके उसकी जानकारी दें.
तीसरा चरण: रास्ते की स्थिति मैनेज करना और निर्देश देना शुरू करना
जब Navigation SDK, रास्ते का हिसाब लगा लेता है, तो वह आपके कॉलबैक को RouteDescription पास करता है. जब getRouteStatus, Navigator.RouteStatus.OK दिखाता है, तब रास्ते के दिशा-निर्देशों की सुविधा चालू करने के लिए, navigator.startGuidance को कॉल करें.
यह पुष्टि करने के लिए कि Navigation SDK ने आपके रूट टोकन को लागू किया है, देखें कि Navigation SDK ने आपके रूट टोकन को लागू किया है या नहीं.
कोड का उदाहरण
navigator.setDestinationsWithToken को रूट टोकन पास करें. इसके बाद, रूट का स्टेटस OK होने पर, निर्देश देना शुरू करें.
// Obtain the routeToken string from your backend
String routeToken = "route token returned by Routes API";
navigator.setDestinationsWithToken(
routeToken,
routeDescription -> {
if (routeDescription.getRouteStatus() == Navigator.RouteStatus.OK) {
navigator.startGuidance();
}
});
वाहन में मौजूद डिसप्ले
Android Auto के लिए नेविगेशन का इस्तेमाल करके, बड़े वाहन के नेविगेशन सेशन को डैशबोर्ड की स्क्रीन पर प्रोजेक्ट किया जा सकता है.अगले चरण
- नेविगेशन यूज़र इंटरफ़ेस (यूआई) में बदलाव करना: पहले से मौजूद यूज़र इंटरफ़ेस (यूआई) कंट्रोल और विज़ुअल एलिमेंट को अपनी पसंद के मुताबिक बनाएं. जैसे, कंपास, रीसेंटर बटन, और कैमरे का पर्सपेक्टिव.
- नेविगेशन इवेंट को सुनें: नेविगेशन से जुड़े अपडेट और लाइफ़साइकल इवेंट को मैनेज करें. जैसे, रास्ते की प्रोग्रेस, ईटीए में बदलाव, और रास्ता बदलना.