यह गाइड किसके लिए है: अगर आप मोबाइल डेवलपर हैं और आपको ट्रक, बस या अन्य बड़े व्यावसायिक वाहनों के ड्राइवरों के लिए, बारी-बारी से निर्देश पाने की सुविधा तैयार करनी है, तो यह गाइड पढ़ें.
इस गाइड में क्या बताया गया है: इस गाइड में बताया गया है कि Routes API या Route Optimization API से जनरेट किए गए, ट्रक के हिसाब से तय किए गए रास्ते का इस्तेमाल कैसे किया जाए. साथ ही, Android के लिए 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. एसडीके और सिस्टम से जुड़ी ज़रूरी शर्तें पूरी करना
आपके ऐप्लिकेशन में, 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 से ट्रक के रास्ते का अनुरोध करता है.
- टोकन पाना: Routing API, नियमों के मुताबिक रास्ते का हिसाब लगाता है और आपके बैकएंड सर्वर को
routeTokenभेजता है. - टोकन फ़ॉरवर्ड करना: आपका बैकएंड सर्वर,
routeTokenऔर डेस्टिनेशन के कोऑर्डिनेट को आपके मोबाइल ऐप्लिकेशन पर पास करता है. - एसडीके को पास करना: मोबाइल ऐप्लिकेशन,
routeTokenको Navigation SDK को पास करता है. - रास्ता दिखाने की सुविधा शुरू करना: Navigation SDK, मोड़-दर-मोड़ अनुभव के सभी पहलुओं को हैंडल करता है. जैसे, रास्ते की जानकारी देने वाले कॉलआउट रेंडर करना और वाहन से जुड़ी पाबंदियों के हिसाब से, डाइनैमिक तरीके से रास्ता बदलना.
डाइनैमिक तरीके से फिर से हिसाब लगाना और फिर से रूट तय करना
नेविगेशन चालू होने के दौरान, ट्रैफ़िक की स्थिति, सड़क बंद होने या मुड़ने की जगह छूट जाने की वजह से, वाहन प्लान किए गए रास्ते से भटक सकता है.
रास्ता बदलने पर:
- Navigation SDK, मंज़िल तक पहुंचने के रास्ते का हिसाब अपने-आप लगाता है.
- एसडीके, वाहन के एट्रिब्यूट और डाइमेंशन को बनाए रखता है. इन्हें ओरिजनल
routeTokenमें कोड किया गया था. - फिर से कैलकुलेट किए गए नए रास्ते में, कम ऊंचाई वाले पुल, वज़न की सीमा वाले पुल, और कमर्शियल ट्रकों के लिए प्रतिबंधित सड़कें नहीं हैं.
लागू करना: ट्रक के हिसाब से यात्रा शुरू करना
बड़े वाहन के रूट टोकन की मदद से, रास्ते के दिशा-निर्देशों के साथ नेविगेशन शुरू करने के लिए, यह तरीका अपनाएं.
पहला चरण: अपने बैकएंड से रूट टोकन पाना
आपका मोबाइल ऐप्लिकेशन, आपके बैकएंड सर्वर से डेस्टिनेशन के कोऑर्डिनेट के साथ-साथ routeToken स्ट्रिंग भी पाता है. अपने सर्वर पर यह टोकन जनरेट करने के बारे में ज़्यादा जानने के लिए, Routes API के दस्तावेज़ में बड़े वाहनों के रास्ते और ईटीए जनरेट करना लेख पढ़ें.
यहां दिया गया कोड, रूट टोकन का एक उदाहरण है:
{
"routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g"
}
दूसरा चरण: CustomRoutesOptions को कॉन्फ़िगर करना
CustomRoutesOptions.builder का इस्तेमाल करके, CustomRoutesOptions इंस्टेंस को रूट टोकन पास करें:
setRouteToken(routeToken)का इस्तेमाल करके टोकन पास करें.setTravelMode(CustomRoutesOptions.TravelMode.DRIVING)का इस्तेमाल करके, यात्रा का मोड सेट करें.
तीसरा चरण: वेपॉइंट तय करना और डेस्टिनेशन सेट करना
अपनी मंज़िल के वेपॉइंट और CustomRoutesOptions से navigator.setDestinations तक पहुंचें.
वेपॉइंट कॉन्फ़िगर करते समय और कस्टम रूट के विकल्प पास करते समय, इन बातों का ध्यान रखें:
- डेस्टिनेशन मैच करने की ज़रूरी शर्त:
setDestinationsको भेजे गए डेस्टिनेशन के निर्देशांक,routeTokenजनरेट करते समय इस्तेमाल किए गए डेस्टिनेशन के निर्देशांकों से मेल खाने चाहिए. कोई दूसरा डेस्टिनेशन तय करने पर गड़बड़ी होती है. - सड़क के किनारे से रूटिंग: बड़े कमर्शियल वाहन, संकरी सड़कों पर आसानी से यू-टर्न नहीं ले सकते. यह पक्का करने के लिए कि ट्रक सड़क के सही किनारे से मंज़िल तक पहुंचे, अपने वेपॉइंट पर
setPreferSameSideOfRoad(true)कॉल करें. - वाहन के स्टॉपओवर: ट्रक को रोकने या सामान उतारने के लिए सही जगह पर ले जाने के लिए, अपने वेपॉइंट पर
setVehicleStopover(true)कॉल करें. - नेविगेशन पॉइंट: अगर आपकी मंज़िल पर ढुलाई के लिए कोई खास दरवाज़ा या लोडिंग डॉक है, तो नेविगेशन पॉइंट टोकन का इस्तेमाल करके इसकी जानकारी दें.
चौथा चरण: रास्ते की स्थिति मैनेज करना और दिशा-निर्देश देना शुरू करना
ListenableResultFuture<Navigator.RouteStatus> पर OnResultListener रजिस्टर करें. जब रास्ते का स्टेटस OK हो, तब navigator.startGuidance को कॉल करें, ताकि रास्ते के दिशा-निर्देश शुरू किए जा सकें.
कोड का उदाहरण
टोकन सेट करने के लिए CustomRoutesOptions.builder का इस्तेमाल करें. इसके बाद, इसे navigator.setDestinations में पास करें.
// Obtain the routeToken string from your backend
val routeToken = "route token returned by Routes API"
val customRoutesOptions = CustomRoutesOptions.builder()
.setRouteToken(routeToken)
.setTravelMode(TravelMode.DRIVING)
.build()
// Specify the same destination used to create the route token
ArrayList <Waypoint> destinations = Lists.newArrayList();
val destination = Waypoint.builder()
.setLatLng(10.0, 20.0)
.setTitle("title")
.setVehicleStopover(true)
.build()
destinations.add(destination);
navigator.setDestinations(destinations, customRoutesOptions)
वाहन में मौजूद डिसप्ले
Android Auto के लिए नेविगेशन का इस्तेमाल करके, वाहन के नेविगेशन सिस्टम की बड़ी स्क्रीन पर नेविगेशन सेशन को प्रोजेक्ट किया जा सकता है.अगले चरण
- नेविगेशन यूज़र इंटरफ़ेस (यूआई) में बदलाव करना: यूज़र इंटरफ़ेस (यूआई) के बिल्ट-इन कंट्रोल और विज़ुअल एलिमेंट को अपनी पसंद के मुताबिक बनाएं. जैसे, कंपास, कैमरे को फिर से सेंटर में लाने वाला बटन, और कैमरे का पर्सपेक्टिव.
- नेविगेशन इवेंट के बारे में सुनें: नेविगेशन अपडेट और लाइफ़साइकल इवेंट मैनेज करें. जैसे, रास्ते की प्रोग्रेस, ईटीए में बदलाव, और रास्ते में बदलाव.