নেভিগেশন ইউজার ইন্টারফেস কাস্টমাইজ করুন

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

কোড দেখুন

নেভিগেশন হেডার কাস্টমাইজ করুন

নেভিগেশন হেডারের থিম পরিবর্তন করতে NavigationFragment.setStylingOptions() বা NavigationView.setStylingOptions() ব্যবহার করুন এবং উপলভ্য হলে হেডারের নিচে প্রদর্শিত পরবর্তী-টার্ন নির্দেশক।

আপনি নিম্নলিখিত বৈশিষ্ট্য সেট করতে পারেন:

অ্যাট্রিবিউট টাইপ গুণাবলী
পেছনের রং
  • প্রাইমারি ডে মোড - নেভিগেশন হেডারের দিনের রঙ
  • সেকেন্ডারি ডে মোড - পরবর্তী পালা সূচকের দিনের রঙ
  • প্রাইমারি নাইট মোড - নেভিগেশন হেডারের রাতের রঙ
  • সেকেন্ডারি নাইট মোড - পরবর্তী-টার্ন সূচকের রাতের রঙ
নির্দেশাবলীর জন্য পাঠ্য উপাদান
  • লেখার রঙ
  • হরফ
  • প্রথম সারির পাঠ্যের আকার
  • দ্বিতীয় সারির পাঠ্যের আকার
পরবর্তী পদক্ষেপের জন্য পাঠ্য উপাদান
  • হরফ
  • দূরত্বের মানের পাঠ্যের রঙ
  • দূরত্বের মানের পাঠ্যের আকার
  • দূরত্বের এককের পাঠ্যের রঙ
  • দূরত্ব একক পাঠ্য আকার
ম্যানুভার আইকন
  • বড় ম্যানুভার আইকনের রঙ
  • ছোট ম্যানুভার আইকনের রঙ
লেন নির্দেশিকা
  • প্রস্তাবিত লেন বা লেনের রঙ

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে স্টাইলিং বিকল্পগুলি সেট করতে হয়:

private NavigationFragment mNavFragment;
mNavFragment = (NavigationFragment) getFragmentManager()
        .findFragmentById(R.id.navigation_fragment);
// Set the styling options on the fragment.
mNavFragment.setStylingOptions(new StylingOptions()
        .primaryDayModeThemeColor(0xff1A237E)
        .secondaryDayModeThemeColor(0xff3F51B5)
        .primaryNightModeThemeColor(0xff212121)
        .secondaryNightModeThemeColor(0xff424242)
        .headerLargeManeuverIconColor(0xffffff00)
        .headerSmallManeuverIconColor(0xffffa500)
        .headerNextStepTypefacePath("/system/fonts/NotoSerif-BoldItalic.ttf")
        .headerNextStepTextColor(0xff00ff00)
        .headerNextStepTextSize(20f)
        .headerDistanceTypefacePath("/system/fonts/NotoSerif-Italic.ttf")
        .headerDistanceValueTextColor(0xff00ff00)
        .headerDistanceUnitsTextColor(0xff0000ff)
        .headerDistanceValueTextSize(20f)
        .headerDistanceUnitsTextSize(18f)
        .headerInstructionsTypefacePath("/system/fonts/NotoSerif-BoldItalic.ttf")
        .headerInstructionsTextColor(0xffffff00)
        .headerInstructionsFirstRowTextSize(24f)
        .headerInstructionsSecondRowTextSize(20f)
        .headerGuidanceRecommendedLaneColor(0xffffa500));

ট্রাফিক স্তর বন্ধ করুন

মানচিত্রে ট্র্যাফিক স্তর সক্ষম বা অক্ষম করতে NavigationMap.setTrafficEnabled() ব্যবহার করুন৷ এই সেটিংটি সামগ্রিকভাবে মানচিত্রে দেখানো ট্র্যাফিক ঘনত্বের ইঙ্গিতগুলিকে প্রভাবিত করে, তবে এটি নেভিগেটর দ্বারা প্লট করা রুটে ট্র্যাফিক নির্দেশকে প্রভাবিত করে না৷

private NavigationMap mMap;
// Get the map.
mMap = mNavFragment.getMap();
// Turn off the traffic layer on the map.
mMap.setTrafficEnabled(false);

কাস্টম মার্কার যোগ করুন

আপনার অ্যাপ্লিকেশন বা ব্যবহারকারীদের জন্য আগ্রহের পয়েন্টগুলি নির্দেশ করতে আপনি মানচিত্রে কাস্টম মার্কার যোগ করতে পারেন। উদাহরণস্বরূপ, আপনি রুটের শেষে পিকআপ পয়েন্ট নির্দেশ করতে চাইতে পারেন। একটি মার্কার যোগ করতে NavigationMap.addMarker() ব্যবহার করুন এবং একটি মার্কারে ট্যাপ শুনতে NavigationMap.setOnMarkerClickListener() ব্যবহার করুন।

নীচের কোডটি প্রকল্পের অঙ্কনযোগ্য সংস্থানে সংরক্ষিত একটি আইকন ব্যবহার করে, R.drawable.ic_person_pin_48dp । আপনি আপনার অ্যাপের সাথে মানানসই যে কোনো ছবি ব্যবহার করতে পারেন।

// Place a marker at the final destination.
if (mNavigator.getCurrentRouteSegment() != null) {
    LatLng destinationLatLng = mNavigator.getCurrentRouteSegment()
        .getDestinationLatLng();

    Bitmap destinationMarkerIcon = BitmapFactory.decodeResource(
            getResources(), R.drawable.ic_person_pin_48dp);

    mMap.addMarker(new MarkerOptions()
            .position(destinationLatLng)
            .icon(destinationMarkerIcon)
            .title("Destination marker"));

    // Listen for a tap on the marker.
    mMap.setOnMarkerClickListener(new NavigationMap.OnMarkerClickListener() {
        @Override
        public void onMarkerClick(Marker marker) {
            displayMessage("Marker tapped: "
                    + marker.getTitle() + ", at location "
                    + marker.getPosition().latitude + ", "
                    + marker.getPosition().longitude);
        }
    });
}

আপনি মার্কার হিসাবে একটি কাস্টম ইমেজ নির্দিষ্ট করতে পারেন; কিন্তু, SDK বর্তমানে এই ছবিগুলিকে পাঠ্য সহ লেবেল করা সমর্থন করে না৷ আরও তথ্যের জন্য, মার্কার কাস্টমাইজ করা দেখুন।

ভাসমান পাঠ্য

আপনি আপনার অ্যাপের যেকোনো জায়গায় ভাসমান পাঠ্য যোগ করতে পারেন, যতক্ষণ না Google অ্যাট্রিবিউশন কভার করা হয়। ন্যাভিগেশন SDK মানচিত্রের অক্ষাংশ/দ্রাঘিমাংশে বা লেবেলে পাঠ্যকে অ্যাঙ্করিং সমর্থন করে না। আরও তথ্যের জন্য, তথ্য উইন্ডো দেখুন।

গতি সীমা প্রদর্শন করুন

আপনি প্রোগ্রামগতভাবে গতি সীমা আইকন দেখাতে বা লুকাতে পারেন। গতিসীমা আইকন প্রদর্শন বা আড়াল করতে NavigationFragment.setSpeedLimitIconEnabled() , NavigationView.setSpeedLimitIconEnabled() , বা SupportNavigationFragment.setSpeedLimitIconEnabled() ব্যবহার করুন। যখন সক্রিয় করা হয়, গতি সীমা আইকন নির্দেশিকা চলাকালীন নীচের কোণায় প্রদর্শিত হয়। আইকনটি গাড়িটি যে রাস্তায় চলাচল করছে তার গতিসীমা প্রদর্শন করে। আইকনটি শুধুমাত্র সেই স্থানেই প্রদর্শিত হবে যেখানে নির্ভরযোগ্য গতি সীমা ডেটা উপলব্ধ।

// Display the Speed Limit icon
mNavFragment.setSpeedLimitIconEnabled(true);

রিস্টার বোতামটি প্রদর্শিত হলে গতি সীমা আইকনটি সাময়িকভাবে লুকানো থাকে।

রাতের মোড সেট করুন

আপনি প্রোগ্রাম্যাটিকভাবে রাতের মোডের আচরণ নিয়ন্ত্রণ করতে পারেন। নাইট মোড চালু বা বন্ধ করতে NavigationFragment.setForceNightMode() , NavigationView.setForceNightMode() , বা SupportNavigationFragment.setForceNightMode() ব্যবহার করুন বা নেভিগেশন SDK কে এটি নিয়ন্ত্রণ করতে দিন।

  • AUTO নেভিগেশন SDK কে ডিভাইসের অবস্থান এবং স্থানীয় সময় অনুযায়ী উপযুক্ত মোড নির্ধারণ করতে দেয়।
  • FORCE_NIGHT নাইট মোড চালু করে।
  • FORCE_DAY ফোর্স ডে মোড চালু করে৷

নিম্নলিখিত উদাহরণটি একটি নেভিগেশন ফ্র্যাগমেন্টের মধ্যে জোর করে নাইট মোড চালু করতে দেখায়:

// Force night mode on.
mNavFragment.setForceNightMode(FORCE_NIGHT);

দিকনির্দেশের তালিকা প্রদর্শন করুন

প্রথমে, ভিউ তৈরি করুন এবং এটি আপনার ক্রমানুসারে যোগ করুন।

setupDirectionsListView(){
  // Create the view.
  DirectionsListView directionsListView = new DirectionsListView(getApplicationContext());
  // Add the view to your view hierarchy.
  ViewGroup group = findViewById(R.id.directions_view);
  group.addView(directionsListView);

  // Add a button to your layout to close the directions list view.
  ImageButton button = findViewById(R.id.close_directions_button); // this button is part of the container we hide in the next line.
  button.setOnClickListener(
      v -> findViewById(R.id.directions_view_container).setVisibility(View.GONE));
}

জীবনচক্রের ইভেন্টগুলিকে DirectionsListView-এ ফরোয়ার্ড করতে ভুলবেন না ঠিক যেমন সেগুলি NaviagtionView-এর সাথে আছে। উদাহরণ স্বরূপ:

protected void onResume() {
  super.onResume();
  directionsListView.onResume();
}

বিকল্প রুট লুকানো

যখন ইউজার ইন্টারফেস অত্যধিক তথ্যের সাথে বিশৃঙ্খল হয়ে যায়, আপনি ডিফল্ট (দুটি) থেকে কম বিকল্প রুট প্রদর্শন করে বা কোন বিকল্প রুট প্রদর্শন করে বিশৃঙ্খলা কমাতে পারেন। আপনি নিম্নলিখিত গণনার মানগুলির একটি সহ RoutingOptions.alternateRoutesStrategy() পদ্ধতিতে কল করে রুটগুলি আনার আগে এই বিকল্পটি কনফিগার করতে পারেন:

গণনা মান বর্ণনা
AlternateRoutesStrategy.SHOW_ALL ডিফল্ট. দুটি বিকল্প রুট পর্যন্ত প্রদর্শন করে।
AlternateRoutesStrategy.SHOW_ONE একটি বিকল্প পথ প্রদর্শন করে (যদি একটি উপলব্ধ থাকে)।
AlternateRoutesStrategy.SHOW_NONE বিকল্প পথ লুকিয়ে রাখে।

উদাহরণ

নিম্নলিখিত কোড উদাহরণটি দেখায় যে কীভাবে বিকল্প রুটগুলি সম্পূর্ণভাবে লুকিয়ে রাখা যায়।

RoutingOptions routingOptions = new RoutingOptions();
routingOptions.alternateRoutesStrategy(AlternateRoutesStrategy.SHOW_NONE);
navigator.setDestinations(destinations, routingOptions, displayOptions);