यह गाइड किसके लिए है: अगर आप मोबाइल डेवलपर हैं और आपको ट्रक, बस या अन्य बड़े व्यावसायिक वाहनों के ड्राइवरों के लिए, बारी-बारी से निर्देश पाने की सुविधा बनानी है, तो यह गाइड पढ़ें.
इस गाइड में क्या बताया गया है: इस गाइड में, 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: इसका इस्तेमाल, एक से ज़्यादा स्टॉप वाले रास्तों को ऑप्टिमाइज़ करने के लिए किया जाता है. साथ ही, इसका इस्तेमाल पूरे फ्लीट के लिए किया जा सकता है. ज़्यादा जानकारी के लिए, बड़े वाहनों के लिए रूट ऑप्टिमाइज़ेशन एपीआई की गाइड देखें.
आपके बैकएंड अनुरोध में, वाहन की
फ़िजिकल एट्रिब्यूट (ऊंचाई, चौड़ाई, लंबाई, वज़न, ऐक्सल की संख्या, और खतरनाक
सामान) के साथ-साथ travelMode: TRUCK की जानकारी भी शामिल होनी चाहिए. राउटिंग एपीआई, जवाब के तौर पर routeToken दिखाता है. आपका बैकएंड सर्वर, इसे आपके मोबाइल ऐप्लिकेशन को भेजता है.
3. एसडीके और सिस्टम से जुड़ी ज़रूरी शर्तें पूरी करना
आपके ऐप्लिकेशन में, Navigation SDK का कम से कम 5.4.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"
}
दूसरा चरण: टोकन को नेविगेटर पर पास करना
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 के लिए नेविगेशन का इस्तेमाल करके, बड़ी गाड़ी के नेविगेशन सेशन को डैशबोर्ड में लगी स्क्रीन पर दिखाया जा सकता है.अगले चरण
- नेविगेशन यूज़र इंटरफ़ेस (यूआई) में बदलाव करना: यूज़र इंटरफ़ेस (यूआई) के बिल्ट-इन कंट्रोल और विज़ुअल एलिमेंट को अपनी पसंद के मुताबिक बनाएं. जैसे, कंपास, रीसेंटर बटन, और कैमरे का पर्सपेक्टिव.
- नेविगेशन इवेंट के बारे में सुनें: नेविगेशन अपडेट और लाइफ़साइकल इवेंट मैनेज करें. जैसे, रास्ते की प्रोग्रेस, पहुंचने के अनुमानित समय में बदलाव, और रास्ते में बदलाव.