প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস

রিয়েল-টাইম ব্যাঘাতগুলি কনফিগার করুন

রিয়েল-টাইম ব্যাঘাত হল এমন কিছু বৈশিষ্ট্যের সমষ্টি যা ব্যবহারকারীদের তাদের রুটে ব্যাঘাত সম্পর্কে সতর্ক করে এবং ব্যবহারকারীদের তাদের সম্মুখীন হওয়া ব্যাঘাতগুলি রিপোর্ট এবং যাচাই করার অনুমতি দেয়। ব্যাঘাতের উদাহরণগুলির মধ্যে রয়েছে যানবাহন দুর্ঘটনা, যানজট, পুলিশ এবং স্পিড ক্যামেরার উপস্থিতি, নির্মাণ, লেন বন্ধ থাকা এবং নির্দিষ্ট আবহাওয়ার পরিস্থিতি। এই পৃষ্ঠাটি রিয়েল-টাইম ব্যাঘাতের বৈশিষ্ট্য এবং তাদের কনফিগারেশন বিকল্পগুলি ব্যাখ্যা করে, যার মধ্যে কাস্টম নেভিগেশন UI ব্যবহার করে এমন অ্যাপগুলির জন্য বিবেচনা অন্তর্ভুক্ত রয়েছে।

রিয়েল-টাইম ব্যাঘাতের বৈশিষ্ট্য

মূল নেভিগেশন অভিজ্ঞতার অংশ হিসেবে নেভিগেশন 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 মানচিত্র ব্যবহারকারী এবং নেভিগেশন SDK ব্যবহারকারীদের জন্য মানচিত্রে প্রদর্শিত হতে পারে, এবং ব্যাঘাতটি দেখানো চালিয়ে যেতে হবে কিনা তা নির্ধারণ করতেও ব্যবহৃত হতে পারে।

সক্রিয় নেভিগেশন তথ্য কার্ড

আপনি setTrafficPromptsEnabled ব্যবহার করে সক্রিয় নেভিগেশনের সময় ব্যাঘাত কলআউটের প্রদর্শন এবং ট্যাপযোগ্যতা নিয়ন্ত্রণ করতে পারেন, যা রুটগুলিতে কলআউটের প্রদর্শন এবং ব্যবহারকারী যখন কোনও ব্যাঘাতের দিকে এগিয়ে যায় তখন স্বয়ংক্রিয় সতর্কতা প্রদর্শন নিয়ন্ত্রণ করে।

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

সক্রিয় নেভিগেশনের সময় ভোটদানের সময় স্বয়ংক্রিয় ব্যাঘাতের সতর্কতা

সক্রিয় নেভিগেশনের সময়, যখন কোনও ব্যবহারকারী কোনও রুটে কোনও ব্যাঘাতের সম্মুখীন হন, তখন ব্যাঘাত সম্পর্কে তথ্য এবং ব্যাঘাত এখনও বিদ্যমান কিনা তা নির্ধারণের জন্য ভোট দেওয়ার বোতাম সহ একটি প্রম্পট উপস্থিত হয়। ব্যবহারকারীদের জমা দেওয়া ভোটগুলি Google দ্বারা প্রক্রিয়া করা হয় এবং অন্যান্য Google মানচিত্র এবং নেভিগেশন SDK ব্যবহারকারীদের জন্য মানচিত্রে প্রদর্শিত হতে পারে, পাশাপাশি ব্যাঘাতটি দেখানো চালিয়ে যেতে হবে কিনা তা নির্ধারণ করতেও ব্যবহৃত হয়।

সক্রিয় নেভিগেশন তথ্য কার্ড

আপনি setTrafficPromptsEnabled ব্যবহার করে সক্রিয় নেভিগেশনের সময় সতর্কতা প্রম্পটগুলির প্রদর্শন কনফিগার করতে পারেন, যা রুটগুলিতে কলআউটগুলির প্রদর্শনও নিয়ন্ত্রণ করে।

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

সক্রিয় নেভিগেশনের সময় ব্যাঘাতের প্রতিবেদন

সক্রিয় নেভিগেশন মোড চলাকালীন, নেভিগেশন UI-তে একটি বোতাম প্রদর্শিত হয় যা ব্যবহারকারীদের তাদের রুটে নতুন ব্যাঘাতের প্রতিবেদন করতে দেয়। যখন একজন ব্যবহারকারী বোতামটি ট্যাপ করেন, তখন রিপোর্ট করার জন্য উপলব্ধ ব্যাঘাতের ধরণ সহ একটি মেনু প্রদর্শিত হয়। ব্যবহারকারীরা যে প্রতিবেদনগুলি জমা দেন তা Google দ্বারা প্রক্রিয়া করা হয় এবং অন্যান্য Google মানচিত্র এবং নেভিগেশন 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);

একটি কাস্টম রিপোর্টিং বোতাম যোগ করুন

স্ট্যান্ডার্ড ডিসঅ্যাব্যারশন রিপোর্টিং বোতামের পরিবর্তে, আপনি নেভিগেশন UI-তে একটি কাস্টম রিপোর্টিং বোতাম যোগ করতে পারেন। ব্যবহারকারী যখন কাস্টম বোতামে ক্লিক করেন, তখন আপনি 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());
  

কাস্টম নেভিগেশন UI গুলির সাথে কাজ করুন

যদি আপনার নেভিগেশন SDK বাস্তবায়নে কাস্টম UI উপাদান অন্তর্ভুক্ত থাকে, তাহলে দ্বন্দ্ব এড়াতে আপনাকে রিয়েল-টাইম ব্যাঘাত উপাদানগুলি বিবেচনা করতে হবে।

রিপোর্টিং বোতামের অবস্থান নির্ধারণ

ডিফল্টরূপে, ব্যাঘাত প্রতিবেদন বোতামটি মানচিত্রের নীচের প্রান্তে/পিছনের কোণে অবস্থিত থাকে—বাম-থেকে-ডান ভাষার জন্য ডানদিকে এবং ডান-থেকে-বাম ভাষার জন্য বাম দিকে। কাস্টম UI উপাদানগুলির জন্য জায়গা তৈরি করার জন্য যদি আপনার রিপোর্টিং বোতামটি সরানোর প্রয়োজন হয়, তাহলে একটি BOTTOM_END_BELOW বা FOOTER কাস্টম নিয়ন্ত্রণ যোগ করুন, যা স্ক্রিনে বোতামটির অবস্থানকে উপরে ঠেলে দেবে। কাস্টম নিয়ন্ত্রণের মধ্যে আপনার নিজস্ব কাস্টম UI স্থাপন করা নিশ্চিত করে যে নেভিগেশন SDK দ্বারা প্রদর্শিত যেকোনো প্রম্পট প্রদর্শিত হওয়ার সময় আপনার কাস্টম UI উপাদানগুলির উপর সঠিকভাবে স্তরিত। আপনি যদি কাস্টম নিয়ন্ত্রণ ব্যবহার করতে না পারেন, তাহলে সম্ভাব্য UI দ্বন্দ্ব পরিচালনা করতে প্রম্পট দৃশ্যমানতা API ব্যবহার করুন।

প্রম্পট দৃশ্যমানতা API (পরীক্ষামূলক)

প্রম্পট ভিজিবিলিটি API আপনাকে নেভিগেশন SDK দ্বারা তৈরি UI উপাদান এবং আপনার নিজস্ব কাস্টম UI উপাদানগুলির মধ্যে দ্বন্দ্ব এড়াতে সাহায্য করে, একটি নেভিগেশন SDK UI উপাদান উপস্থিত হওয়ার আগে এবং উপাদানটি সরানোর সাথে সাথে কলব্যাক গ্রহণ করার জন্য একজন শ্রোতা যোগ করে। আপনি রিয়েল-টাইম ব্যাঘাত উপাদানগুলির জন্য কলব্যাক পেতে পারেন, যার মধ্যে তথ্য কার্ড, প্রম্পট এবং ব্যাঘাত প্রতিবেদন মেনু অন্তর্ভুক্ত রয়েছে—এবং নেভিগেশন 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)