হালকা পদ্ধতি

অ্যান্ড্রয়েডের জন্য ম্যাপস এসডিকে একটি মানচিত্রের বিটম্যাপ ছবি পরিবেশন করতে পারে, যা ব্যবহারকারীকে সীমিত মিথস্ক্রিয়ার সুযোগ দেয়। একে লাইট মোড ম্যাপ বলা হয়।

কোডের নমুনা

গিটহাবে থাকা ApiDemos রিপোজিটরিতে এমন কিছু নমুনা রয়েছে যা লাইট মোডের ব্যবহার প্রদর্শন করে:

  • LiteDemoActivity - Java : জাভাতে লাইট মোড ম্যাপ ব্যবহারের প্রাথমিক বিষয়সমূহ
  • LiteDemoActivity - Kotlin : Kotlin-এ লাইট মোড ম্যাপ ব্যবহারের প্রাথমিক বিষয়সমূহ
  • LiteListDemoActivity - Java : জাভাতে লাইট মোড ব্যবহার করে ListView-তে দক্ষতার সাথে ম্যাপ প্রদর্শন করা
  • LiteListDemoActivity - Kotlin : Kotlin-এর লাইট মোড ব্যবহার করে ListView-তে দক্ষতার সাথে ম্যাপ প্রদর্শন করা

লাইট মোডের সংক্ষিপ্ত বিবরণ

লাইট মোড ম্যাপ হলো একটি নির্দিষ্ট অবস্থান এবং জুম লেভেলের মানচিত্রের একটি বিটম্যাপ চিত্র। লাইট মোড সব ধরনের মানচিত্র (সাধারণ, হাইব্রিড, স্যাটেলাইট, টেরেইন) এবং সম্পূর্ণ এপিআই দ্বারা সরবরাহকৃত কার্যকারিতার একটি উপসেট সমর্থন করে। যখন আপনি একটি স্ট্রিমে একাধিক মানচিত্র সরবরাহ করতে চান, অথবা এমন কোনো মানচিত্র দেখাতে চান যা অর্থপূর্ণ মিথস্ক্রিয়ার জন্য খুব ছোট, তখন লাইট মোড উপযোগী।

মানচিত্র দেখার সময় ব্যবহারকারীরা এটি জুম বা প্যান করতে পারবেন না। মানচিত্রের আইকনগুলো ব্যবহারকারীদের গুগল ম্যাপস মোবাইল অ্যাপে মানচিত্রটি দেখার এবং দিকনির্দেশনা চাওয়ার সুযোগ দেয়।

লাইট মোড ম্যাপ যোগ করা

লাইট মোড সম্পূর্ণ গুগল ম্যাপস অ্যান্ড্রয়েড এপিআই-এর মতোই একই ক্লাস এবং ইন্টারফেস ব্যবহার করে। আপনি নিম্নলিখিত উপায়ে একটি GoogleMap লাইট মোডে সেট করতে পারেন:

  • MapView বা MapFragment জন্য একটি XML অ্যাট্রিবিউট হিসেবে
  • অথবা GoogleMapOptions অবজেক্টে

MapView বা MapFragment জন্য একটি XML অ্যাট্রিবিউট হিসেবে

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:name="com.google.android.gms.maps.MapFragment"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    map:cameraZoom="13"
    map:mapType="normal"
    map:liteMode="true"/>

GoogleMapOptions অবজেক্টে

কোটলিন

val options = GoogleMapOptions()
    .liteMode(true)

      

জাভা

GoogleMapOptions options = new GoogleMapOptions()
    .liteMode(true);

      

ম্যাপের প্রাথমিক অবস্থা নির্ধারণের বিস্তারিত তথ্যের জন্য, ম্যাপ অবজেক্টের নির্দেশিকাটি দেখুন।

মানচিত্র দৃশ্য বা দিকনির্দেশনা অনুরোধ চালু করার অভিপ্রায়

ডিফল্টরূপে, ম্যাপের নীচে ডানদিকের টুলবারে এমন আইকন থাকে যা গুগল ম্যাপস মোবাইল অ্যাপে ম্যাপ ভিউ বা দিকনির্দেশনার অনুরোধ করার সুযোগ দেয়। আপনি UiSettings.setMapToolbarEnabled(false) কল করে টুলবারটি নিষ্ক্রিয় করতে পারেন। আরও বিস্তারিত জানতে, টুলবার ডকুমেন্টেশন দেখুন।

এছাড়াও, ডিফল্টরূপে যখন কোনো ব্যবহারকারী ম্যাপে ট্যাপ করেন, তখন এপিআই গুগল ম্যাপস মোবাইল অ্যাপটি চালু করে। আপনি GoogleMap.setOnMapClickListener() ব্যবহার করে আপনার নিজস্ব লিসেনার সেট করার মাধ্যমে এটি ওভাররাইড করতে পারেন। আপনি MapView বা MapFragment ধারণকারী ভিউতে setClickable() কল করে ম্যাপের ক্লিক ইভেন্টগুলো নিষ্ক্রিয়ও করতে পারেন। এই দুটি পদ্ধতির বিস্তারিত জানতে, ইভেন্ট ডকুমেন্টেশন দেখুন।

জীবনচক্রের ঘটনাগুলি

সম্পূর্ণ ইন্টারেক্টিভ মোডে এপিআই ব্যবহার করার সময়, MapView ক্লাসের ব্যবহারকারীদের অবশ্যই সমস্ত অ্যাক্টিভিটি লাইফ সাইকেল মেথডগুলোকে MapView ক্লাসের সংশ্লিষ্ট মেথডগুলোতে ফরওয়ার্ড করতে হবে। লাইফ সাইকেল মেথডগুলোর উদাহরণ হলো onCreate() , onDestroy() , onResume() , এবং onPause()

Lite মোডে MapView ক্লাস ব্যবহার করার সময়, নিম্নলিখিত পরিস্থিতিগুলি ছাড়া লাইফসাইকেল ইভেন্ট ফরওয়ার্ড করা ঐচ্ছিক:

  • onCreate() কল করা বাধ্যতামূলক, অন্যথায় কোনো ম্যাপ দেখা যাবে না।
  • আপনি যদি আপনার লাইট মোড ম্যাপে 'আমার অবস্থান' ডটটি দেখাতে চান এবং ডিফল্ট লোকেশন সোর্স ব্যবহার করতে চান, তাহলে আপনাকে onResume() এবং onPause() কল করতে হবে, কারণ লোকেশন সোর্সটি শুধুমাত্র এই কলগুলোর মাঝেই আপডেট হবে। আপনি যদি আপনার নিজস্ব লোকেশন সোর্স ব্যবহার করেন, তাহলে এই দুটি মেথড কল করার প্রয়োজন নেই।

সমর্থিত এপিআই বৈশিষ্ট্য

নিম্নলিখিত সারণীটি এপিআই কার্যকারিতার প্রতিটি ক্ষেত্রের জন্য লাইট মোড ম্যাপের আচরণ বর্ণনা করে। যদি কোনো অ্যাপ এমন কোনো মেথড কল করে যা লাইট মোডে সমর্থিত নয়, তাহলে এপিআই একটি সতর্কীকরণ বার্তা লগ করবে।

কার্যকারিতা
মানচিত্রের প্রকারভেদ
সমর্থিত? হ্যাঁ
GoogleMapOptions.mapType() এবং GoogleMap.setMapType() এর মাধ্যমে নিম্নলিখিত মানচিত্রের প্রকারগুলি পাওয়া যায়: MAP_TYPE_NORMAL , MAP_TYPE_SATELLITE , MAP_TYPE_TERRAIN , MAP_TYPE_HYBRID , MAP_TYPE_NONE
পলিলাইন, বহুভুজ, বৃত্ত
সমর্থিত? হ্যাঁ
শেপগুলির জন্য লাইট মোডের কার্যকারিতা সম্পূর্ণ এপিআই-এর সাথে মিলে যায়।
প্রক্ষেপণ
সমর্থিত? হ্যাঁ
প্রজেকশনের লাইট মোড কার্যকারিতা সম্পূর্ণ এপিআই-এর সাথে মিলে যায়।
আমার অবস্থান
সমর্থিত? হ্যাঁ
'আমার অবস্থান' লেয়ারের লাইট মোড কার্যকারিতা সম্পূর্ণ এপিআই-এর সাথে মিলে যায়।
মানচিত্র প্যাডিং
সমর্থিত? হ্যাঁ
ম্যাপ প্যাডিংয়ের জন্য লাইট মোডের সাপোর্ট সম্পূর্ণ এপিআই-এর সাথে মিলে যায়।
তথ্য উইন্ডো
সমর্থিত? হ্যাঁ
যদি আপনি কোনো মার্কারের title() সেট করেন, তাহলে ব্যবহারকারী মার্কারটিতে ট্যাপ করলে ডিফল্ট ইনফো উইন্ডোটি প্রদর্শিত হবে। মার্কারটিতে showInfoWindow() কল করে আপনি প্রোগ্রাম্যাটিকভাবে ইনফো উইন্ডোটি দেখাতে পারেন। এছাড়াও, আপনি InfoWindowAdapter ইন্টারফেসের মাধ্যমে কাস্টম ইনফো উইন্ডো তৈরি করতে পারেন।
কাস্টম বেস ম্যাপ শৈলী
সমর্থিত? আংশিকভাবে।
অ্যান্ড্রয়েডের জন্য ম্যাপস এসডিকে (Maps SDK for Android) বেস ম্যাপের কাস্টম স্টাইলিং সমর্থন করে। লাইট মোড শুধুমাত্র JSON-ভিত্তিক কাস্টম স্টাইলিং সমর্থন করে, ক্লাউড-ভিত্তিক স্টাইলিং নয়, কারণ একটি স্টাইল করা ম্যাপ রেন্ডার করার জন্য ম্যাপ আইডি প্রয়োজন হয়। এছাড়াও, লাইট মোড ডার্ক মোড ব্যবহার করার জন্য ম্যাপের কালার স্কিম সেট করা সমর্থন করে না।
চিহ্নিতকারী
সমর্থিত? আংশিকভাবে।
আপনি একটি মার্কার যোগ করতে এবং ক্লিক ইভেন্টে সাড়া দিতে পারেন। আপনি কাস্টম মার্কার আইকনও যোগ করতে পারেন। কোনো মার্কারকে ড্র্যাগযোগ্য করা সম্ভব নয়। লাইট মোড ম্যাপের মার্কারগুলো সমতল হয় এবং সেগুলো ঘোরানো যায় না।
ক্যামেরার অবস্থান, জুম এবং অ্যানিমেশন
সমর্থিত? আংশিকভাবে।

আপনি ক্যামেরার টার্গেট ও জুম সেট করতে পারবেন, কিন্তু টিল্ট বা বেয়ারিং নয়। লাইট মোডে জুম লেভেল নিকটতম পূর্ণসংখ্যায় রাউন্ড করা হয়। GoogleMap.moveCamera() কল করলে আপনি আরেকটি লাইট মোড ম্যাপ ইমেজ পাবেন। ক্যামেরা সেট করা এবং পরিচালনা করার বিষয়ে আরও তথ্যের জন্য, ‘ভিউ পরিবর্তন’ দেখুন।

GoogleMap.animateCamera() কল করলে ক্যামেরার নড়াচড়ার কোনো অ্যানিমেশন হবে না। ক্যামেরা ভিউটি তাৎক্ষণিকভাবে নতুন অবস্থানে চলে যাবে।

মানচিত্রের ঘটনাগুলি
সমর্থিত? আংশিকভাবে।

লাইট মোড GoogleMap.setOnMapClickListener() এবং GoogleMap.setOnMapLongClickListener() সমর্থন করে।

লাইট মোডে কোনো ম্যাপের ক্লিক ইভেন্ট নিষ্ক্রিয় করতে, আপনি MapView বা MapFragment ধারণকারী ভিউটিতে setClickable() কল করতে পারেন। এটি উপযোগী, উদাহরণস্বরূপ, যখন একটি লিস্ট ভিউতে এক বা একাধিক ম্যাপ প্রদর্শন করা হয়, যেখানে আপনি চান যে ক্লিক ইভেন্টটি ম্যাপের সাথে সম্পর্কহীন কোনো অ্যাকশন চালু করুক।

বিস্তারিত জানতে ইভেন্ট ডকুমেন্টেশন দেখুন।

অভ্যন্তরীণ মানচিত্র এবং ভবন
সমর্থিত? না
লাইট মোডে ম্যাপস স্ট্যাটিক এপিআই (Maps Static API) -এর মতোই টাইলস দেখানো হবে। এর মানে হলো, যদি ইনডোর ফ্লোর প্ল্যানটি ডিফল্ট টাইলের সাথে সংযুক্ত থাকে, তবে তা দেখা যাবে। অন্যথায়, এটি দেখা যাবে না। এছাড়াও, আপনি প্রদর্শিত লেভেল পরিবর্তন করতে বা লেভেল পিকার পরিচালনা করতে পারবেন না।
ট্র্যাফিক স্তর
সমর্থিত? না
GoogleMap.setTrafficEnabled() লাইট মোডে সমর্থিত নয়।
ভূমি ওভারলে
সমর্থিত? না
GoogleMap.addGroundOverlay() লাইট মোডে সমর্থিত নয়।
টাইল ওভারলে
সমর্থিত? না
GoogleMap.addTileOverlay() লাইট মোডে সমর্থিত নয়।
অঙ্গভঙ্গি
সমর্থিত? না
লাইট মোড জেসচার সমর্থন করে না। জেসচার চালু বা বন্ধ করলেও কোনো প্রভাব পড়বে না।
রাস্তার দৃশ্য
সমর্থিত? না
লাইট মোডে স্ট্রিট ভিউ সমর্থিত নয়।