यह गाइड किसके लिए है: अगर आप मोबाइल डेवलपर हैं और आपको ट्रक या अन्य बड़े वाहनों के ड्राइवर के लिए, कैब में नेविगेशन की सुविधा तैयार करनी है, तो यह गाइड पढ़ें.
इस गाइड में क्या बताया गया है: इस गाइड में बताया गया है कि Routes API या Route Optimization API से जनरेट किए गए, ट्रक के हिसाब से रूट का इस्तेमाल कैसे किया जाता है. साथ ही, Navigation SDK की मदद से, बारी-बारी से नेविगेशन सेशन को कैसे चालू किया जाता है.
आपको क्या सीखने को मिलेगा
आपको इनके बारे में जानकारी मिलेगी:
routeTokenका इस्तेमाल करके, बैकएंड में रूट प्लान करने की सुविधा को ऐप्लिकेशन में नेविगेशन की सुविधा से कनेक्ट करें.- पहले से प्लान किए गए ट्रक के रास्ते का इस्तेमाल करने के लिए, Navigation SDK को कॉन्फ़िगर करें.
- जानें कि ट्रक के लिए पाबंदियां, ड्राइवर को यूज़र इंटरफ़ेस (यूआई) में कैसे दिखती हैं.
ज़रूरी शर्तें
शुरू करने से पहले, आपको इन ज़रूरी शर्तों को पूरा करना होगा.
प्रोजेक्ट सेटअप करना
आपके Google Cloud प्रोजेक्ट में, बड़े वाहनों के लिए रास्तों की जानकारी देने की सुविधा चालू होनी चाहिए. अगर Routes API और Navigation SDK के लिए अलग-अलग प्रोजेक्ट इस्तेमाल किए जा रहे हैं, तो दोनों को उसी हिसाब से उपलब्ध कराया जाना चाहिए.
रूट टोकन जनरेट करना
सबसे पहले, आपको ट्रक के रास्ते और पहुंचने का अनुमानित समय जनरेट करने से जुड़ी गाइड में दिए गए निर्देशों का पालन करके, कोई रूट जनरेट करना होगा. इस गाइड में दिए गए चरणों को पूरा करने के लिए, उस प्रोसेस का आउटपुट, यानी कि routeToken ज़रूरी है.
ज़रूरी शर्तें
आपके ऐप्लिकेशन में, Navigation SDK का यह वर्शन इस्तेमाल किया जाना चाहिए:
- Android: 5.2.0 या इसके बाद का वर्शन
- iOS: 5.4.0 या इसके बाद का वर्शन
इसके अलावा, Navigation SDK इस्तेमाल करने की सभी ज़रूरी शर्तें लागू होती हैं:
सीमाएं
शुरू करने से पहले, आपको यहां दी गई ज़रूरी शर्तों और सीमाओं के बारे में पता होना चाहिए.
- उपलब्धता: बड़े वाहनों के लिए रूटिंग की सुविधा, सिर्फ़ अमेरिका के 48 राज्यों में उपलब्ध है.
- बड़े वाहनों के लिए रास्तों की जानकारी देने की सुविधा, Preview-stage में उपलब्ध है. ड्राइवरों को सुरक्षित या कानूनी तौर पर सही रास्ते के लिए, सिर्फ़ इस एपीआई से मिले रास्तों पर भरोसा नहीं करना चाहिए. इस बात की कोई गारंटी नहीं है कि सुझाए गए रास्ते, वाहन के हिसाब से सही होंगे. इन रास्तों पर चलने से, ड्राइवर को कम ऊंचाई वाले पुल या ऐसी सड़कों पर जाने का खतरा हो सकता है जहां बड़े वाहनों को जाने की अनुमति नहीं है.
- बेस्ट-एफ़र्ट राउट. कुछ मामलों में, एपीआई ऐसा रास्ता नहीं ढूंढ पाता जो यात्रा से जुड़ी पाबंदियों का पूरी तरह से पालन करता हो. इसके बजाय, यह "सबसे अच्छा" रास्ता दिखाता है. हालांकि, ऐसा हो सकता है कि यह रास्ता अब भी प्रतिबंधित इलाकों से होकर गुज़रे. Routes API से मिले जवाब में,
routeRestrictionsPartiallyIgnoredफ़ील्ड में इन रास्तों को साफ़ तौर पर फ़्लैग किया जाता है. ऐसे मामलों में, अपने रास्ते की योजना सावधानी से बनाएं. इसके लिए, सबसे अच्छा तरीका है कि आप किसी अन्य सोर्स के डेटा का इस्तेमाल करें. प्लानिंग या नेविगेशन के लिए, फ़्लैग किए गए रास्ते को भरोसेमंद सोर्स के तौर पर इस्तेमाल न करें. - काम न करने वाली सुविधाएं: हम इस सुविधा में और भी सुविधाएं जोड़ने पर काम कर रहे हैं. हालांकि, बड़े वाहनों के लिए रूटिंग की सुविधा में ये सुविधाएं काम नहीं करती हैं:
- ट्रक के टोल की कीमतें
- गति की सीमाएं
- रेडियोऐक्टिव खतरनाक सामान के लिए रूटिंग
- इस्तेमाल की सीमाएं: सभी अनुरोधों पर, क्वेरी प्रति सेकंड (क्यूपीएस) की स्टैंडर्ड सीमाएं लागू होती हैं.
ट्रक के हिसाब से यूज़र इंटरफ़ेस (यूआई) दिखाना
Navigation SDK, ट्रक पर लागू होने वाली पाबंदियों के बारे में ड्राइवर को चेतावनी देने के लिए, मैप पर रास्ते की जानकारी देने वाले कॉलआउट दिखाता है. ये कॉलआउट, विज़ुअल चेतावनियां होती हैं. कॉलआउट, प्लान किए गए रूट पर मौजूद पाबंदियों के लिए रेंडर किए जाते हैं. हालांकि, ये आस-पास की अन्य सड़कों पर नहीं दिखते.
SDK टूल में, इन पाबंदियों के लिए कॉलआउट शामिल हैं:
| पाबंदी | कॉलआउट आइकॉन और टेक्स्ट | विज्ञापन दिखाने की शर्तें |
|---|---|---|
| ऊंचाई |
पीला = चेतावनी, आपका वाहन तय सीमा के करीब है
लाल = आपका वाहन तय सीमा से ज़्यादा ऊंचा है |
जब वाहन की ऊंचाई, तय सीमा के आस-पास होती है, तब पीले रंग का कॉलआउट दिखता है.
अगर रास्ता, ज़रूरी शर्तों के मुताबिक नहीं है और ऊंचाई से जुड़ी पाबंदी का उल्लंघन करता है, तो लाल रंग का कॉलआउट दिखता है.
|
| वैल्यू |
|
जब वाहन का वज़न, सड़क की तय सीमा से ज़्यादा होता है, तब लाल रंग का कॉलआउट दिखता है.
|
| ट्रक प्रतिबंधित हैं |
|
ट्रक के लिए पाबंदी वाले सड़क के सेगमेंट पर यात्रा करने के दौरान, लाल रंग का कॉलआउट दिखता है.
|
| खतरनाक सामान |
|
जब किसी सड़क पर खतरनाक सामान ले जाने वाले वाहन को जाने की अनुमति नहीं होती है, तब लाल रंग का कॉलआउट दिखता है.
|
रूट टोकन वर्कफ़्लो
routeToken, Routes API से जनरेट किए गए किसी रास्ते का एन्क्रिप्ट (सुरक्षित) किया गया स्नैपशॉट होता है. इसमें रास्ते की पूरी जानकारी होती है. साथ ही, इसे बनाने के लिए इस्तेमाल की गई गाड़ी की प्रोफ़ाइल भी शामिल होती है. टोकन का इस्तेमाल करने से यह पक्का होता है कि नेविगेशन सेशन, आपके बैकएंड पर प्लान किए गए रूट से मेल खाता है.
ध्यान दें कि ड्राइवर के नेविगेट करना शुरू करने के बाद, ट्रैफ़िक और सड़क की स्थितियों के हिसाब से, नेविगेशन SDK से दिखाया गया रास्ता बदल सकता है. कुछ मामलों में, यह रूट टोकन में बताए गए रूट से अलग हो सकता है.
इन मामलों में, साथ ही उस मामले में जहां ड्राइवर प्लान किए गए रास्ते से भटक जाता है, रूट टोकन का इस्तेमाल करने से यह पक्का होता है कि नए सिरे से कैलकुलेट किए गए रास्ते, वाहन के उन एट्रिब्यूट के मुताबिक हों जिन्हें Routes API के ओरिजनल अनुरोध में कॉन्फ़िगर किया गया था.
वर्कफ़्लो में ये चरण शामिल होते हैं:
- आपका बैकएंड, Routes API से ट्रक के रास्ते का अनुरोध करता है.
- Routes API,
routeTokenदिखाता है. - आपका बैकएंड, इस टोकन को आपके मोबाइल ऐप्लिकेशन पर भेजता है.
- यात्रा शुरू करने के लिए, मोबाइल ऐप्लिकेशन
routeTokenको Navigation SDK को पास करता है. - Navigation SDK, मुड़ने के निर्देशों से जुड़ी सभी सुविधाओं को मैनेज करता है. जैसे, अगर ड्राइवर रास्ते से भटक जाता है, तो उसे फिर से रूट पर लाने के लिए निर्देश देना. हालांकि, ऐसा करते समय वाहन से जुड़ी पाबंदियों का ध्यान रखा जाता है.
लागू करना: ट्रक के हिसाब से यात्रा शुरू करना
ट्रक के रास्ते के हिसाब से नेविगेशन सेशन शुरू करने के लिए, आपको Navigator को रूट टोकन भेजना होगा.
पहला चरण: रूट टोकन पाना
आपके ऐप्लिकेशन को बैकएंड सर्वर से routeToken स्ट्रिंग मिलती है.
यहां दिया गया कोड, टोकन का एक उदाहरण है:
CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g
दूसरा चरण: टोकन को नेविगेटर पर पास करना
यात्रा की मंज़िल सेट करते समय, Navigator को routeToken दें.
इसके बाद, Navigation SDK इस टोकन का इस्तेमाल, यात्रा के लिए रास्ते का हिसाब लगाने के लिए करता है.
ध्यान दें कि Navigation SDK में TravelMode कॉन्फ़िगरेशन होता है. इसे TravelMode.DRIVING पर सेट करना ज़रूरी है. यह Routes API में travelMode कॉन्फ़िगरेशन से अलग है. इसे TRUCK पर सेट करना ज़रूरी है. Routes API travelMode कॉन्फ़िगरेशन को routeToken में कोड किया जाता है. इससे Navigation SDK को ट्रक के हिसाब से अनुभव और रास्ता दिखाने का सिग्नल मिलता है.
Android
टोकन सेट करने के लिए 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)
iOS
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: {...})
अगले चरण
- SDK टूल के बारे में जानें: Android के लिए Navigation SDK टूल | iOS के लिए Navigation SDK टूल
- यूज़र इंटरफ़ेस (यूआई) को पसंद के मुताबिक बनाएं: Navigation SDK के यूज़र इंटरफ़ेस (यूआई) को पसंद के मुताबिक बनाने का तरीका जानें