प्लैटफ़ॉर्म चुनें: 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)

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)