यह गाइड किसके लिए है: अगर आप मोबाइल डेवलपर हैं और आपको ट्रक, बस या अन्य बड़े व्यावसायिक वाहनों के ड्राइवरों के लिए, रास्ते के दिशा-निर्देशों की सुविधा तैयार करनी है, तो यह गाइड पढ़ें.
इस गाइड में क्या शामिल है: इस गाइड में, Routes API या Route Optimization API से जनरेट किए गए ट्रक के लिए खास रास्ते को इस्तेमाल करने का तरीका बताया गया है. साथ ही, iOS के लिए Navigation SDK की मदद से, रास्ते के दिशा-निर्देश देने वाले सेशन को बेहतर बनाने का तरीका भी बताया गया है.
आपको क्या सीखने को मिलेगा
आपको ये टास्क करने का तरीका पता चलेगा:
routeTokenका इस्तेमाल करके, बैकएंड रूट प्लानिंग को ऐप्लिकेशन में नेविगेशन के अनुभव से कनेक्ट करें.- ट्रक के लिए पहले से तय किए गए रास्ते का इस्तेमाल करने के लिए, Navigation SDK को कॉन्फ़िगर करें.
- ट्रक के लिए लागू पाबंदियां, ड्राइवर को नेविगेशन यूज़र इंटरफ़ेस (यूआई) में कैसे दिखती हैं, यह समझना.
ज़रूरी शर्तें
शुरू करने से पहले, पक्का करें कि आपने ये ज़रूरी शर्तें पूरी की हों:
1. अपने प्रोजेक्ट के लिए ऐक्सेस का अनुरोध करना
बड़े वाहनों के लिए रूटिंग की सुविधा, कुछ ही ग्राहकों के लिए उपलब्ध है. अपने Google Cloud प्रोजेक्ट के लिए, इस सुविधा में दिलचस्पी दिखाने और इसके ऐक्सेस का अनुरोध करने के लिए, संपर्क करने के लिए फ़ॉर्म भरें. Google का कोई प्रतिनिधि आपसे संपर्क करके, आगे की प्रोसेस के बारे में बताएगा.
Google से ऐक्सेस मिलने के बाद, पक्का करें कि आपके Google Cloud प्रोजेक्ट में बड़े वाहनों के लिए रूटिंग की सुविधा उपलब्ध हो.
अगर आपका संगठन, बैकएंड रूटिंग एपीआई और मोबाइल नेविगेशन एसडीके के लिए अलग-अलग Google Cloud प्रोजेक्ट का इस्तेमाल करता है, तो हर प्रोजेक्ट को सेट अप करने के लिए Google से संपर्क करें.
2. बैकएंड रूट जनरेशन सेट अप करना और रूट टोकन पाना
डिवाइस पर नेविगेशन शुरू करने से पहले, आपके बैकएंड सर्वर को ट्रक का रूट जनरेट करना होगा. साथ ही, इनमें से किसी एक एपीआई का इस्तेमाल करके routeToken पाना होगा:
- Routes API: इसका सुझाव, शुरुआत की जगह और मंज़िल के बीच ट्रक के लिए एक रूट का हिसाब लगाने के लिए दिया जाता है. सेटअप करने के निर्देशों के लिए, बड़े वाहनों के लिए रास्ते और ईटीए जनरेट करना लेख पढ़ें.
- Route Optimization API: इसका सुझाव, कई स्टॉप वाले रास्तों को ऑप्टिमाइज़ करने के लिए दिया जाता है. ज़्यादा जानकारी के लिए, Route Optimization API की मदद से बड़े वाहनों के लिए रूट तय करने की गाइड देखें.
बैकएंड के अनुरोध में, वाहन की शारीरिक विशेषताओं (ऊंचाई, चौड़ाई, लंबाई, वज़न, एक्सल की संख्या, और खतरनाक सामान) के साथ-साथ travelMode: TRUCK की जानकारी भी देनी होगी. राउटिंग एपीआई, जवाब में routeToken दिखाता है. इसे आपका बैकएंड सर्वर, आपके मोबाइल ऐप्लिकेशन को भेजता है.
3. SDK टूल और सिस्टम से जुड़ी ज़रूरी शर्तें पूरी करना
आपके ऐप्लिकेशन में, Navigation SDK का कम से कम 5.4.0 या इसके बाद का वर्शन इस्तेमाल किया जाना चाहिए.इसके अलावा, आपके प्रोजेक्ट को Navigation SDK टूल सेटअप करने से जुड़ी ज़रूरी शर्तें पूरी करनी होंगी.
सीमाएं और ऑपरेशन से जुड़े दिशा-निर्देश
शुरू करने से पहले, इन सीमाओं और दिशा-निर्देशों पर ध्यान दें:
- भौगोलिक उपलब्धता: बड़े वाहनों के लिए रूटिंग की सुविधा, अमेरिका के 48 राज्यों (सामान्य रूप से उपलब्ध) और जापान (एक्सपेरिमेंट के तौर पर उपलब्ध) में उपलब्ध है. यह सुविधा अलास्का, हवाई या अमेरिका के इलाकों में उपलब्ध नहीं है.
- ड्राइवर के लिए सलाह और सुरक्षा: ड्राइवर को सुरक्षित या कानूनी तौर पर सही होने के लिए, सिर्फ़ Navigation SDK से मिले रास्तों पर भरोसा नहीं करना चाहिए. ऐसा हो सकता है कि सड़क की सभी स्थितियों में, रास्ते वाहन के लिए सही न हों. इन रास्तों पर चलने से, ड्राइवर को कम ऊंचाई या वज़न की पाबंदी वाली सड़कों जैसे खतरों का सामना करना पड़ सकता है. ड्राइवर को हमेशा सतर्क रहना चाहिए. साथ ही, सड़क पर लगे संकेतों और स्थानीय नियमों का पालन करना चाहिए.
- सबसे सही रास्ते: जब रूटिंग एपीआई को ऐसा रास्ता नहीं मिलता जो वाहन से जुड़ी पाबंदियों का पूरी तरह से पालन करता हो, तो वह "सबसे सही" रास्ता दिखाता है. हालांकि, हो सकता है कि इस रास्ते में अब भी पाबंदी वाले सेगमेंट शामिल हों. उदाहरण के लिए, 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 और मंज़िल के वेपॉइंट को mapView.navigator
setDestinations तरीके से पास करें.
वेपॉइंट कॉन्फ़िगर करते समय और रूट टोकन पास करते समय, इन बातों का ध्यान रखें:
- डेस्टिनेशन मैच करने की ज़रूरी शर्त:
setDestinationsको पास किए गए डेस्टिनेशन के निर्देशांक,routeTokenजनरेट करते समय इस्तेमाल किए गए डेस्टिनेशन के निर्देशांकों से मैच होने चाहिए. कोई दूसरा डेस्टिनेशन तय करने पर गड़बड़ी होती है. - सड़क के किनारे रूटिंग: बड़े व्यावसायिक वाहन, संकरी गलियों में आसानी से यू-टर्न नहीं ले सकते. यह पक्का करने के लिए कि ट्रक, सड़क के सही हिस्से से मंज़िल तक पहुंचे, अपने वेपॉइंट पर
preferSameSideOfRoad = trueसेट करें. - वाहन के स्टॉपओवर: ट्रक को रुकने या सामान उतारने के लिए सही जगह पर ले जाने के लिए, अपने वेपॉइंट पर
vehicleStopover = trueसेट करें. - नेविगेशन पॉइंट: अगर आपकी मंज़िल पर ढुलाई के लिए कोई खास एंट्री पॉइंट या लोडिंग डॉक है, तो नेविगेशन पॉइंट टोकन का इस्तेमाल करके इसकी जानकारी दें.
तीसरा चरण: रास्ते की स्थिति मैनेज करना और निर्देश देना शुरू करना
setDestinations कॉलबैक में मिले GMSRouteStatus का आकलन करें. जब स्टेटस .OK (GMSRouteStatusOK) हो, तब मोड़-दर-मोड़ दिशा-निर्देश पाने की सुविधा चालू करने के लिए, isGuidanceActive = true (guidanceActive = YES) को सेट करें.
कोड का उदाहरण
mapView.navigator
setDestinations तरीके का इस्तेमाल करके, Navigation SDK को रूट टोकन पास करें. इसमें वही डेस्टिनेशन वेपॉइंट बताएं जो आपने रूट टोकन बनाते समय इस्तेमाल किए थे:
// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([destination], routeToken: routeToken, callback: {...})
वाहन में मौजूद डिसप्ले
CarPlay के लिए नेविगेशन का इस्तेमाल करके, बड़े वाहन के नेविगेशन सेशन को डैशबोर्ड की स्क्रीन पर दिखाया जा सकता है.अगले चरण
- नेविगेशन यूज़र इंटरफ़ेस (यूआई) में बदलाव करना: पहले से मौजूद यूज़र इंटरफ़ेस (यूआई) कंट्रोल और विज़ुअल एलिमेंट को अपनी पसंद के मुताबिक बनाएं. जैसे, कंपास, रीसेंटर बटन, और कैमरे का पर्सपेक्टिव.
- नेविगेशन इवेंट को सुनें: नेविगेशन से जुड़े अपडेट और लाइफ़साइकल इवेंट को मैनेज करें. जैसे, रास्ते की प्रोग्रेस, ईटीए में बदलाव, और रास्ता बदलना.