बड़े वाहनों के रास्तों पर नेविगेट करना

यह गाइड किसके लिए है: अगर आप मोबाइल डेवलपर हैं और आपको ट्रक, बस या अन्य बड़े व्यावसायिक वाहनों के ड्राइवरों के लिए, रास्ते के दिशा-निर्देशों की सुविधा तैयार करनी है, तो यह गाइड पढ़ें.

इस गाइड में क्या शामिल है: इस गाइड में, Routes API या Route Optimization API से जनरेट किए गए ट्रक के लिए खास रास्ते को इस्तेमाल करने का तरीका बताया गया है. साथ ही, Navigation SDK for Android की मदद से, रास्ते के दिशा-निर्देश वाले नेविगेशन सेशन को बेहतर बनाने का तरीका बताया गया है.

आपको क्या सीखने को मिलेगा

आपको ये टास्क करने का तरीका पता चलेगा:

  • routeToken का इस्तेमाल करके, बैकएंड रूट प्लानिंग को ऐप्लिकेशन में नेविगेशन के अनुभव से कनेक्ट करें.
  • ट्रक के लिए पहले से तय किए गए रास्ते का इस्तेमाल करने के लिए, Navigation SDK को कॉन्फ़िगर करें.
  • ट्रक के लिए लागू पाबंदियां, ड्राइवर को नेविगेशन यूज़र इंटरफ़ेस (यूआई) में कैसे दिखती हैं, यह समझना.

ज़रूरी शर्तें

शुरू करने से पहले, पक्का करें कि आपने ये ज़रूरी शर्तें पूरी की हों:

1. अपने प्रोजेक्ट के लिए ऐक्सेस का अनुरोध करना

बड़े वाहनों के लिए रूटिंग की सुविधा, कुछ ही ग्राहकों के लिए उपलब्ध है. अपने Google Cloud प्रोजेक्ट के लिए, इस सुविधा में दिलचस्पी दिखाने और इसके ऐक्सेस का अनुरोध करने के लिए, संपर्क करने के लिए फ़ॉर्म भरें. Google का कोई प्रतिनिधि आपसे संपर्क करके, आगे की प्रोसेस के बारे में बताएगा.

Google से ऐक्सेस मिलने के बाद, पक्का करें कि आपके Google Cloud प्रोजेक्ट में बड़े वाहनों के लिए रूटिंग की सुविधा उपलब्ध हो.

अगर आपका संगठन, बैकएंड रूटिंग एपीआई और मोबाइल नेविगेशन एसडीके के लिए अलग-अलग Google Cloud प्रोजेक्ट का इस्तेमाल करता है, तो हर प्रोजेक्ट को सेट अप करने के लिए Google से संपर्क करें.

2. बैकएंड रूट जनरेशन सेट अप करना और रूट टोकन पाना

डिवाइस पर नेविगेशन शुरू करने से पहले, आपके बैकएंड सर्वर को ट्रक का रूट जनरेट करना होगा. साथ ही, इनमें से किसी एक एपीआई का इस्तेमाल करके routeToken पाना होगा:

बैकएंड के अनुरोध में, वाहन की शारीरिक विशेषताओं (ऊंचाई, चौड़ाई, लंबाई, वज़न, एक्सल की संख्या, और खतरनाक सामान) के साथ-साथ travelMode: TRUCK की जानकारी भी देनी होगी. राउटिंग एपीआई, जवाब में routeToken दिखाता है. इसे आपका बैकएंड सर्वर, आपके मोबाइल ऐप्लिकेशन को भेजता है.

3. SDK टूल और सिस्टम से जुड़ी ज़रूरी शर्तें पूरी करना

आपके ऐप्लिकेशन में, Navigation SDK का कम से कम 5.2.0 या इसके बाद का वर्शन इस्तेमाल किया जाना चाहिए.

इसके अलावा, आपके प्रोजेक्ट को Navigation SDK टूल सेटअप करने से जुड़ी ज़रूरी शर्तें पूरी करनी होंगी.

सीमाएं और ऑपरेशन से जुड़े दिशा-निर्देश

शुरू करने से पहले, इन सीमाओं और दिशा-निर्देशों पर ध्यान दें:

  • भौगोलिक उपलब्धता: बड़े वाहनों के लिए रूटिंग की सुविधा, अमेरिका के 48 राज्यों (सामान्य रूप से उपलब्ध) और जापान (एक्सपेरिमेंट के तौर पर उपलब्ध) में उपलब्ध है. यह सुविधा अलास्का, हवाई या अमेरिका के इलाकों में उपलब्ध नहीं है.
  • ड्राइवर के लिए सलाह और सुरक्षा: ड्राइवर को सुरक्षित या कानूनी तौर पर सही होने के लिए, सिर्फ़ Navigation SDK से मिले रास्तों पर भरोसा नहीं करना चाहिए. ऐसा हो सकता है कि सड़क की सभी स्थितियों में, रास्ते वाहन के लिए सही न हों. इन रास्तों पर चलने से, ड्राइवर को कम ऊंचाई या वज़न की पाबंदी वाली सड़कों जैसे खतरों का सामना करना पड़ सकता है. ड्राइवर को हमेशा सतर्क रहना चाहिए. साथ ही, सड़क पर लगे संकेतों और स्थानीय नियमों का पालन करना चाहिए.
  • सबसे सही रास्ते: जब रूटिंग एपीआई को ऐसा रास्ता नहीं मिलता जो वाहन से जुड़ी पाबंदियों का पूरी तरह से पालन करता हो, तो वह "सबसे सही" रास्ता दिखाता है. हालांकि, हो सकता है कि इस रास्ते में अब भी पाबंदी वाले सेगमेंट शामिल हों. उदाहरण के लिए, Routes API अपने रिस्पॉन्स में routeRestrictionsPartiallyIgnored फ़्लैग सेट करता है. इन रास्तों पर नेविगेट करते समय, Navigation SDK रास्ते के कॉलआउट दिखाता है, ताकि पाबंदियों को हाइलाइट किया जा सके. ऐसे मामलों में, रास्तों को ध्यान से प्लान करें. साथ ही, प्लान बनाने या नेविगेट करने के लिए, फ़्लैग किए गए रास्ते को एकमात्र भरोसेमंद सोर्स के तौर पर इस्तेमाल न करें.
  • इस्तेमाल न की जा सकने वाली सुविधाएं: बड़े वाहन के लिए रास्ता दिखाने की सुविधा के साथ ये सुविधाएं काम नहीं करतीं:
    • ट्रक के लिए टोल की कीमत
    • ट्रक या भारी वाहनों के लिए तय की गई स्पीड लिमिट
    • रेडियोऐक्टिव खतरनाक पदार्थों के लिए रूटिंग
  • इस्तेमाल करने की सीमाएं: Navigation SDK के लिए किए गए अनुरोध, इस्तेमाल करने की सामान्य सीमाओं और कोटे की सीमाओं के मुताबिक होते हैं. ज़्यादा जानकारी के लिए, इस्तेमाल और बिलिंग देखें.

ट्रक के लिए खास यूज़र इंटरफ़ेस (यूआई) दिखाना (रास्ते के कॉलआउट)

Navigation SDK, मैप पर विज़ुअल चेतावनियां अपने-आप दिखाता है. इन्हें रूट कॉलआउट कहा जाता है. इनसे ड्राइवरों को ट्रक पर लागू होने वाली पाबंदियों के बारे में पहले से ही चेतावनी मिल जाती है. तय किए गए रास्ते पर मौजूद पाबंदियों के लिए कॉलआउट दिखते हैं. हालांकि, आस-पास की अन्य सड़कों पर ये नहीं दिखते.

Navigation SDK में, इन पाबंदियों के लिए कॉलआउट शामिल हैं:

पाबंदी कॉलआउट आइकॉन और टेक्स्ट दिखाने की शर्तें
ऊंचाई ऊंचाई की पाबंदी वाला पीले रंग का आइकॉन
पीला = चेतावनी, आपके वाहन की ऊंचाई, तय की गई ज़्यादा से ज़्यादा ऊंचाई के करीब है
ऊंचाई की पाबंदी दिखाने वाला लाल रंग का आइकॉन
लाल = आपके वाहन की ऊंचाई, तय की गई ज़्यादा से ज़्यादा ऊंचाई से ज़्यादा है
जब वाहन की ऊंचाई, तय की गई सीमा के करीब होती है, तो पीले रंग का कॉलआउट दिखता है.
ऊंचाई की सीमा से जुड़ी चेतावनी दिखाने वाला मैप
अगर रास्ता नियमों के मुताबिक नहीं है और ऊंचाई की पाबंदी का उल्लंघन करता है, तो लाल रंग का कॉलआउट दिखता है.
ऊंचाई की पाबंदी के उल्लंघन को दिखाने वाला मैप
वैल्यू वज़न की पाबंदी का आइकॉन जब वाहन का वज़न सड़क की तय सीमा से ज़्यादा होता है, तो लाल रंग का कॉलआउट दिखता है.
मैप की इमेज, जिसमें वज़न की सीमा दिखाने वाला आइकॉन दिख रहा है
ट्रक प्रतिबंधित हैं ट्रक पर पाबंदी का आइकॉन व्यावसायिक ट्रक पर पाबंदी वाले सड़क के सेगमेंट पर यात्रा करते समय, लाल रंग का कॉलआउट दिखता है.
मैप की इमेज, जिसमें ट्रक के लिए पाबंदी वाला आइकॉन दिख रहा है
खतरनाक सामान खतरनाक सामान का आइकॉन जब किसी सड़क पर खतरनाक सामान ले जाने वाले वाहन पर पाबंदी होती है, तो लाल रंग का कॉलआउट दिखता है.
खतरनाक सामान का आइकॉन दिखाने वाले मैप की इमेज

रूट टोकन कैसे काम करते हैं

routeToken, Google के रूटिंग बैकएंड से बनाए गए रूट का एन्क्रिप्ट यानी सुरक्षित किया गया स्नैपशॉट होता है. इसमें तय किए गए रूट की ज्यामिति के साथ-साथ, वाहन के फ़िज़िकल डाइमेंशन और प्रतिबंधित प्रोफ़ाइल की जानकारी शामिल होती है.

वर्कफ़्लो में ये चरण शामिल हैं:

  1. रूट का अनुरोध करना: आपका बैकएंड सर्वर, Routes API (या Route Optimization API) से ट्रक के रूट का अनुरोध करता है.
  2. टोकन पाना: रूटिंग एपीआई, नियमों का पालन करने वाले रूट का हिसाब लगाता है और आपके बैकएंड सर्वर को routeToken दिखाता है.
  3. टोकन फ़ॉरवर्ड करना: आपका बैकएंड सर्वर, routeToken और डेस्टिनेशन के निर्देशांकों को आपके मोबाइल ऐप्लिकेशन को भेजता है.
  4. एसडीके टूल को पास करना: मोबाइल ऐप्लिकेशन, routeToken को Navigation SDK को पास करता है.
  5. निर्देश देना शुरू करना: 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 के लिए नेविगेशन का इस्तेमाल करके, बड़े वाहन के नेविगेशन सेशन को डैशबोर्ड की स्क्रीन पर प्रोजेक्ट किया जा सकता है.

अगले चरण