रीयल-टाइम में रुकावटों की जानकारी कॉन्फ़िगर करना
रीयल-टाइम में रुकावटों की जानकारी देने वाली सुविधा, कई सुविधाओं का कलेक्शन है. इससे उपयोगकर्ताओं को उनके रास्ते में आने वाली रुकावटों के बारे में सूचना मिलती है. साथ ही, वे अपने रास्ते में आने वाली रुकावटों की शिकायत कर सकते हैं और उनकी पुष्टि कर सकते हैं. रुकावटों के उदाहरणों में वाहन दुर्घटनाएं, ट्रैफ़िक जाम, पुलिस और स्पीड कैमरे की मौजूदगी, निर्माण कार्य, लेन बंद होना, और मौसम की कुछ स्थितियां शामिल हैं. इस पेज पर, रीयल-टाइम में रुकावट की जानकारी देने वाली सुविधाओं और उनके कॉन्फ़िगरेशन के विकल्पों के बारे में बताया गया है. इसमें, कस्टम नेविगेशन यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करने वाले ऐप्लिकेशन के लिए ज़रूरी बातें भी शामिल हैं.
रीयल-टाइम में रुकावट की जानकारी देने वाली सुविधाएं
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 (एक्सपेरिमेंट के तौर पर उपलब्ध)
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)