प्लैटफ़ॉर्म चुनें: Android iOS

रीयल-टाइम में होने वाली रुकावटों को कॉन्फ़िगर करना

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

बाधा की जानकारी देने वाली रीयल-टाइम सुविधाएं

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)

प्रॉम्प्ट दिखाने या छिपाने से जुड़ा एपीआई, 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)