रीयल-टाइम में होने वाली रुकावटों को कॉन्फ़िगर करना
रीयल-टाइम में होने वाली रुकावटों की जानकारी देने वाली सुविधाओं का मकसद, लोगों को उनके रास्ते में आने वाली रुकावटों के बारे में सूचना देना है. साथ ही, लोगों को उन रुकावटों की शिकायत करने और उनकी पुष्टि करने की सुविधा देना है. बाधाओं के उदाहरणों में वाहन दुर्घटनाएं, ट्रैफ़िक जाम, पुलिस और स्पीड कैमरे की मौजूदगी, निर्माण कार्य, लेन बंद होना, और मौसम की कुछ स्थितियां शामिल हैं. इस पेज पर, रीयल-टाइम में रुकावट की जानकारी देने वाली सुविधाओं और उनके कॉन्फ़िगरेशन के विकल्पों के बारे में बताया गया है. इसमें, कस्टम नेविगेशन यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करने वाले ऐप्लिकेशन के बारे में भी जानकारी दी गई है.
सड़क बंद होने के बारे में रीयल-टाइम में सूचनाएं देने वाली सुविधाएं
Navigation SDK में, रास्ते में किसी तरह की रुकावट की जानकारी देने वाली ये सुविधाएं शामिल हैं. ये सुविधाएं, नेविगेशन की मुख्य सुविधाओं का हिस्सा हैं:- रास्तों पर किसी तरह की रुकावट वाले इंटरैक्टिव कॉलआउट.
- नेविगेशन चालू रहने के दौरान, रास्ते में रुकावट आने पर अपने-आप सूचनाएं पाने और वोट करने की सुविधा.
- नेविगेशन चालू रहने के दौरान, किसी तरह की रुकावट की जानकारी देना.
इन सुविधाओं को कॉन्फ़िगर किया जा सकता है. ये डिफ़ॉल्ट रूप से चालू रहती हैं. यहां दिए गए सेक्शन में, सुविधाओं और कॉन्फ़िगरेशन के उपलब्ध विकल्पों के बारे में ज़्यादा जानकारी दी गई है.
रास्तों पर रुकावटों के बारे में इंटरैक्टिव कॉलआउट
जब कोई ऐप्लिकेशन, रास्ते की जानकारी या नेविगेशन के दौरान कोई रास्ता दिखाता है, तो रास्ते में आने वाली मौजूदा रुकावटें, रास्ते के साथ कॉलआउट के तौर पर दिखती हैं. ट्रैफ़िक लेयर चालू करने पर, रास्ते से हटकर होने वाली रुकावटें भी मैप पर दिखती हैं. कॉलआउट में एक आइकॉन शामिल होता है. इससे पता चलता है कि किस तरह की समस्या आ रही है.
setTrafficPromptsEnabled का इस्तेमाल करके, रास्ते में होने वाली रुकावटों के कॉलआउट दिखने की सुविधा को कंट्रोल किया जा सकता है. इससे किसी रुकावट के पास पहुंचने पर, उपयोगकर्ता को अपने-आप दिखने वाली सूचनाओं को भी कंट्रोल किया जा सकता है.
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
जब कोई उपयोगकर्ता कॉलआउट पर टैप करता है, तब उसे रुकावट की जानकारी दिखाएं
किसी रुकावट के कॉलआउट पर टैप करने से, ज़्यादा जानकारी वाला जानकारी कार्ड खुलता है. यह सुविधा, रास्ते में और रास्ते से हटकर किए गए कॉलआउट, दोनों पर लागू होती है. हालांकि, रास्ते से हटकर किए गए कॉलआउट सिर्फ़ तब दिखते हैं, जब ट्रैफ़िक लेयर चालू हो. कार्ड में, रुकावट की वजह, रुकावट की आखिरी रिपोर्टिंग का समय, और कभी-कभी यह विकल्प दिखता है कि रुकावट अब भी मौजूद है या नहीं. उपयोगकर्ता के ऐक्टिव नेविगेशन में होने या न होने के आधार पर, जानकारी कार्ड का टाइप और उसके कॉन्फ़िगरेशन के विकल्प अलग-अलग होते हैं.
नेविगेशन शुरू करने से पहले, रास्ते की खास जानकारी देने वाले कॉलआउट सूचना कार्ड
नेविगेशन शुरू करने से पहले, उपयोगकर्ता मैप या रास्ते की खास जानकारी पर मौजूद, रास्ते में या रास्ते से हटकर मौजूद कॉलआउट पर टैप करके, जानकारी वाला कार्ड खोल सकते हैं. रास्ते से हटकर की गई कॉलआउट के लिए, ट्रैफ़िक लेयर चालू होनी चाहिए. जानकारी वाले कार्ड में, गड़बड़ी के बारे में ज़्यादा जानकारी दी गई है.
setTrafficIncidentCardsEnabled का इस्तेमाल करके, उपयोगकर्ताओं को रास्ते की खास जानकारी में रुकावटों के कॉलआउट पर टैप करने की सुविधा को कंट्रोल किया जा सकता है, ताकि वे ज़्यादा जानकारी देख सकें.
// Using the SupportNavigationFragment mNavFragment.setTrafficIncidentCardsEnabled(true); // Using the NavigationView navigationView.setTrafficIncidentCardsEnabled(true);
नेविगेशन के दौरान कॉलआउट की जानकारी देने वाले कार्ड
नेविगेशन चालू होने पर, उपयोगकर्ता रास्ते में या रास्ते से हटकर किसी रुकावट के कॉलआउट पर टैप करके, जानकारी कार्ड खोल सकते हैं. कार्ड में, गड़बड़ी का टाइप और पिछली बार रिपोर्ट किए जाने का समय दिखता है. इसमें उपयोगकर्ताओं के लिए बटन भी शामिल होते हैं. इन बटन का इस्तेमाल करके, उपयोगकर्ता यह वोट कर सकते हैं कि गड़बड़ी अब भी मौजूद है या नहीं.
सड़क बंद होने के अलावा, रास्ते में और रास्ते से हटकर होने वाली रुकावटों के लिए वोटिंग की जा सकती है. हालांकि, यह सुविधा उपयोगकर्ता के पांच किलोमीटर के दायरे में ही उपलब्ध है. Google इन वोटों को प्रोसेस करता है, ताकि यह तय किया जा सके कि रुकावट की जानकारी दिखाना जारी रखना है या नहीं. ये वोट, Google Maps और Navigation SDK इस्तेमाल करने वाले अन्य लोगों को भी मैप पर दिख सकते हैं.
नेविगेशन के दौरान, रुकावटों के कॉलआउट दिखने और उन पर टैप करने की सुविधा को कंट्रोल किया जा सकता है. इसके लिए, setTrafficPromptsEnabled का इस्तेमाल करें. इससे रास्तों पर कॉलआउट दिखने और किसी रुकावट के पास पहुंचने पर, अपने-आप दिखने वाली सूचनाओं को भी कंट्रोल किया जा सकता है.
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
नेविगेशन चालू रहने के दौरान, सड़क बंद होने की सूचनाएं अपने-आप पाने और वोट करने की सुविधा
नेविगेशन चालू होने के दौरान, जब कोई व्यक्ति किसी रास्ते पर आने वाली रुकावट के पास पहुंचता है, तो उसे एक प्रॉम्प्ट दिखता है. इसमें रुकावट के बारे में जानकारी होती है. साथ ही, यह वोट करने के लिए बटन होते हैं कि क्या रुकावट अब भी मौजूद है. उपयोगकर्ताओं के सबमिट किए गए वोट को Google प्रोसेस करता है. साथ ही, इन्हें Google Maps और Navigation SDK इस्तेमाल करने वाले अन्य लोगों के लिए, मैप पर दिखाया जा सकता है. इसके अलावा, इनका इस्तेमाल यह तय करने के लिए भी किया जा सकता है कि रुकावट की जानकारी दिखानी है या नहीं.
नेविगेशन चालू होने के दौरान, सूचना वाले प्रॉम्प्ट के दिखने की सुविधा को कॉन्फ़िगर किया जा सकता है. इसके लिए, setTrafficPromptsEnabled का इस्तेमाल करें. इससे रास्ते के साथ-साथ कॉलआउट के दिखने की सुविधा को भी कंट्रोल किया जा सकता है.
// Using the SupportNavigationFragment mNavFragment.setTrafficPromptsEnabled(true); // Using the NavigationView navigationView.setTrafficPromptsEnabled(true);
नेविगेशन चालू रहने के दौरान, सड़क बंद होने की जानकारी देना
ऐक्टिव नेविगेशन मोड के दौरान, नेविगेशन यूज़र इंटरफ़ेस (यूआई) पर एक बटन दिखता है. इसकी मदद से उपयोगकर्ता, रास्ते में आने वाली नई समस्याओं की शिकायत कर सकते हैं. जब कोई उपयोगकर्ता बटन पर टैप करता है, तो उसे एक मेन्यू दिखता है. इसमें रुकावट की उन सभी तरह की समस्याओं की जानकारी होती है जिनकी शिकायत की जा सकती है. उपयोगकर्ताओं की ओर से सबमिट की गई रिपोर्ट को Google प्रोसेस करता है. साथ ही, इन्हें Google Maps और Navigation SDK इस्तेमाल करने वाले अन्य लोगों के लिए मैप पर दिखाया जा सकता है.
सड़क बंद होने की जानकारी देने पर, ब्लॉक किए गए हिस्से को बायपास करने के लिए वैकल्पिक रास्ता दिखाया जा सकता है. इससे उपयोगकर्ता को रास्ते में बदलाव की पुष्टि करने या उसे अस्वीकार करने के लिए कहा जाता है. यह सुविधा, उपलब्ध होने पर ही मिलेगी.
स्टैंडर्ड रिपोर्टिंग बटन दिखाना या छिपाना
नेविगेशन चालू होने के दौरान, स्टैंडर्ड रिपोर्टिंग बटन की दृश्यता को कॉन्फ़िगर किया जा सकता है. इसके लिए, setReportIncidentButtonEnabled का इस्तेमाल करें.
// Enables the incident reporting button to show in situations where incident // reporting is possible. // Using the SupportNavigationFragment mNavFragment.setReportIncidentButtonEnabled(true); // Using the NavigationView navigationView.setReportIncidentButtonEnabled(true);
कस्टम रिपोर्टिंग बटन जोड़ना
स्टैंडर्ड डिसरप्शन रिपोर्टिंग बटन की जगह, नेविगेशन यूज़र इंटरफ़ेस (यूआई) में कस्टम रिपोर्टिंग बटन जोड़ा जा सकता है. जब उपयोगकर्ता कस्टम बटन पर क्लिक करता है, तब showReportIncidentsPanel तरीके को कॉल करके, रिपोर्टिंग मेन्यू को दिखाया जा सकता है. कस्टम रिपोर्टिंग बटन जोड़ने से पहले, पुष्टि करें कि ऐप्लिकेशन चालू नेविगेशन में हो और उपयोगकर्ता उस देश में हो जहां isIncidentReportingAvailable को कॉल करके रिपोर्टिंग की सुविधा चालू की गई हो. अगर इनमें से कोई भी शर्त पूरी नहीं होती है, तो रिपोर्टिंग मेन्यू नहीं दिखेगा.
Button customReportIncidentButton = findViewById(R.id.custom_reporting_button); // Check if reporting is available before displaying your button customReportIncidentButton.setVisibility( navigationView.isReportingAvailable ? View.VISIBLE : View.GONE); // Trigger the reporting flow if the button is clicked customReportIncidentButton.setOnClickListener(v -> navigationView.showReportIncidentsPanel());
कस्टम नेविगेशन यूज़र इंटरफ़ेस (यूआई) के साथ काम करना
अगर आपने Navigation SDK टूल को लागू करते समय कस्टम यूज़र इंटरफ़ेस (यूआई) एलिमेंट शामिल किए हैं, तो आपको टकराव से बचने के लिए, रीयल-टाइम में होने वाली रुकावटों के एलिमेंट को ध्यान में रखना होगा.
'शिकायत करें' बटन की पोज़िशन
डिफ़ॉल्ट रूप से, रुकावट की जानकारी देने वाला बटन, मैप के सबसे नीचे/आखिरी कोने में होता है. यह बटन, बाईं से दाईं ओर लिखी जाने वाली भाषाओं के लिए दाईं ओर और दाईं से बाईं ओर लिखी जाने वाली भाषाओं के लिए बाईं ओर होता है. अगर आपको कस्टम यूज़र इंटरफ़ेस (यूआई) एलिमेंट के लिए जगह बनाने के लिए, रिपोर्टिंग बटन को दूसरी जगह ले जाना है, तोBOTTOM_END_BELOW या FOOTER कस्टम कंट्रोल जोड़ें. इससे बटन की जगह स्क्रीन पर ऊपर की ओर हो जाएगी. कस्टम कंट्रोल में अपने कस्टम यूज़र इंटरफ़ेस (यूआई) रखने से यह भी पक्का होता है कि Navigation SDK की ओर से दिखाए गए सभी प्रॉम्प्ट, आपके कस्टम यूआई एलिमेंट पर सही तरीके से लेयर किए गए हों. अगर कस्टम कंट्रोल का इस्तेमाल नहीं किया जा सकता, तो यूज़र इंटरफ़ेस (यूआई) से जुड़ी संभावित समस्याओं को मैनेज करने के लिए, Prompt Visibility API का इस्तेमाल करें.
Prompt Visibility API (Experimental)
Prompt Visibility API की मदद से, Navigation SDK से जनरेट हुए यूज़र इंटरफ़ेस (यूआई) एलिमेंट और आपके कस्टम यूज़र इंटरफ़ेस (यूआई) एलिमेंट के बीच होने वाले टकरावों से बचा जा सकता है. इसके लिए, यह एपीआई एक लिसनर जोड़ता है, ताकि Navigation SDK का कोई यूज़र इंटरफ़ेस (यूआई) एलिमेंट दिखने से पहले और जैसे ही एलिमेंट हटता है, आपको कॉलबैक मिल सके. आपको रीयल-टाइम में होने वाली रुकावटों के एलिमेंट के लिए, कॉलबैक मिल सकते हैं. इनमें जानकारी वाले कार्ड, प्रॉम्प्ट, और रुकावट की शिकायत करने वाला मेन्यू शामिल है. साथ ही, आपको Navigation SDK से जनरेट होने वाली अन्य सूचनाएं भी मिल सकती हैं.// Sample listener val listener: PromptVisibilityChangedListener = { isVisible -> if (isVisible) { customFab.visibility = false customFooter.visibility = false moveSomeOtherThingsAround() } else { customFab.visibility = true customFooter.visibility = true moveSomeThingsBackToWhereTheyWereBefore() } } // Inside onCreate() navigationView.addPromptVisibilityChangedListener(listener) // Inside onDestroy() navigationView.removePromptVisibilityChangedListener(listener)