প্ল্যাটফর্ম বেছে নিন: Android iOS

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

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

অ্যাক্টিভ নেভিগেশনের সময় বিঘ্ন ঘটার রিপোর্ট করা

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

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

স্ট্যান্ডার্ড বিঘ্ন রিপোর্টিং বোতামের পরিবর্তে, আপনি নেভিগেশন 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-এর সাথে কাজ করা

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

রিপোর্টিং বোতামের পজিশন

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

Prompt Visibility API (Experimental)

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