অ্যান্ড্রয়েডের জন্য ম্যাপস এসডিকে (Maps SDK for Android) ব্যবহার করে, আপনি নির্ধারণ করতে পারেন যে কোন বিল্ট-ইন UI উপাদানগুলো ম্যাপে প্রদর্শিত হবে এবং কোন অঙ্গভঙ্গিগুলো অনুমোদিত হবে, যার মাধ্যমে ব্যবহারকারীরা আপনার ম্যাপের সাথে কীভাবে মিথস্ক্রিয়া করবে তা কাস্টমাইজ করতে পারেন।
কোডের নমুনা
গিটহাবে থাকা ApiDemos রিপোজিটরিতে একটি নমুনা রয়েছে যা কন্ট্রোল এবং জেসচার অপশনগুলোর ব্যবহার প্রদর্শন করে:
- UiSettingsDemoActivity : কোটলিন নমুনা
- UiSettingsDemoActivity : জাভা নমুনা
ব্যবহারকারীর ন্যূনতম হস্তক্ষেপের জন্য লাইট মোড
আপনি যদি ন্যূনতম ব্যবহারকারী ইন্টারঅ্যাকশন সহ একটি হালকা ওজনের মানচিত্র চান, তবে লাইট-মোড মানচিত্র ব্যবহার করার কথা বিবেচনা করতে পারেন। লাইট মোড একটি নির্দিষ্ট অবস্থান এবং জুম স্তরে মানচিত্রের একটি বিটম্যাপ চিত্র প্রদান করে। লাইট মোডে, ব্যবহারকারীরা মানচিত্রটি প্যান বা জুম করতে পারেন না এবং জেসচার কাজ করে না। বিস্তারিত জানতে, লাইট মোডের নির্দেশিকা দেখুন।
UI নিয়ন্ত্রণ
ম্যাপস এপিআই-তে বিল্ট-ইন ইউআই কন্ট্রোল রয়েছে, যা আপনার অ্যান্ড্রয়েড ফোনের গুগল ম্যাপস অ্যাপ্লিকেশনের কন্ট্রোলগুলোর মতোই। আপনি UiSettings ক্লাস ব্যবহার করে এই কন্ট্রোলগুলোর দৃশ্যমানতা পরিবর্তন বা চালু-বন্ধ করতে পারেন, যা GoogleMap.getUiSettings মেথডের মাধ্যমে একটি GoogleMap থেকে পাওয়া যায়। এই ক্লাসে করা পরিবর্তনগুলো ম্যাপে তাৎক্ষণিকভাবে প্রতিফলিত হয়। এই বৈশিষ্ট্যগুলোর একটি উদাহরণ দেখতে, স্যাম্পল অ্যাপ্লিকেশনের UI Settings ডেমো অ্যাক্টিভিটিটি দেখুন।
ম্যাপ তৈরি করার সময়ও আপনি XML অ্যাট্রিবিউটের মাধ্যমে অথবা GoogleMapOptions ক্লাস ব্যবহার করে এই অপশনগুলোর বেশিরভাগই কনফিগার করতে পারেন। আরও বিস্তারিত জানতে ‘প্রাথমিক অবস্থা কনফিগার করা’ দেখুন।
প্রতিটি UI কন্ট্রোলের ম্যাপের প্রান্তের সাপেক্ষে একটি পূর্বনির্ধারিত অবস্থান থাকে। GoogleMap অবজেক্টে প্যাডিং যোগ করে আপনি কন্ট্রোলগুলোকে ওপরের, নিচের, বামের বা ডানের প্রান্ত থেকে সরিয়ে নিতে পারেন।
জুম নিয়ন্ত্রণ
ম্যাপস এপিআই-তে বিল্ট-ইন জুম কন্ট্রোল রয়েছে যা ম্যাপের নিচের ডান কোণায় দেখা যায়। এগুলি ডিফল্টরূপে নিষ্ক্রিয় থাকে, কিন্তু UiSettings.setZoomControlsEnabled(true) কল করে সক্রিয় করা যায়।

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

আমার অবস্থান বোতাম
'আমার অবস্থান' বাটনটি স্ক্রিনের উপরের ডান কোণায় শুধুমাত্র তখনই দেখা যায়, যখন 'আমার অবস্থান' লেয়ারটি সক্রিয় থাকে। বিস্তারিত জানতে, অবস্থান ডেটা সংক্রান্ত নির্দেশিকাটি দেখুন।

লেভেল পিকার
ডিফল্টরূপে, ব্যবহারকারী যখন একটি ইনডোর ম্যাপ দেখেন, তখন স্ক্রিনের মাঝের ডান প্রান্তের কাছাকাছি একটি লেভেল পিকার (ফ্লোর পিকার) দেখা যায়। যখন দুই বা ততোধিক ইনডোর ম্যাপ দেখা যায়, তখন লেভেল পিকারটি সেই বিল্ডিংয়ের জন্য প্রযোজ্য হবে যেটি বর্তমানে ফোকাসে আছে, যা সাধারণত স্ক্রিনের কেন্দ্রের সবচেয়ে কাছের বিল্ডিংটি। প্রতিটি বিল্ডিংয়ের একটি ডিফল্ট লেভেল থাকে, যা পিকারটি প্রথমবার প্রদর্শিত হওয়ার সময় নির্বাচিত থাকবে। ব্যবহারকারীরা পিকার থেকে নির্বাচন করে একটি ভিন্ন লেভেল বেছে নিতে পারেন।
আপনি GoogleMap.getUiSettings().setIndoorLevelPickerEnabled(boolean) কল করে লেভেল পিকার কন্ট্রোলটি নিষ্ক্রিয় বা সক্রিয় করতে পারেন।
ডিফল্ট লেভেল পিকারটি আপনার নিজের পিকার দিয়ে প্রতিস্থাপন করতে চাইলে এটি কাজে আসে।

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

উপরের স্ক্রিনশটে টুলবারটি ম্যাপের নিচের ডানদিকে দেখা যাচ্ছে। ম্যাপের বিষয়বস্তুর উপর নির্ভর করে এবং গুগল ম্যাপস মোবাইল অ্যাপটি সংশ্লিষ্ট ইন্টেন্টটি সমর্থন করলে, ম্যাপে শূন্য, একটি বা উভয় ইন্টেন্ট আইকনই প্রদর্শিত হবে।
মানচিত্রের অঙ্গভঙ্গি
অ্যান্ড্রয়েডের জন্য ম্যাপস এসডিকে (Maps SDK for Android) দিয়ে তৈরি একটি ম্যাপ গুগল ম্যাপস অ্যাপ্লিকেশনের মতোই একই জেসচারগুলো সমর্থন করে। তবে, এমন পরিস্থিতি আসতে পারে যেখানে আপনি ম্যাপের অবস্থা অক্ষুণ্ণ রাখার জন্য নির্দিষ্ট কিছু জেসচার নিষ্ক্রিয় করতে চাইতে পারেন। জুম, প্যান, টিল্ট এবং বেয়ারিং প্রোগ্রাম্যাটিকভাবেও সেট করা যায় - আরও বিস্তারিত জানতে ক্যামেরা এবং ভিউ দেখুন। মনে রাখবেন যে, জেসচার নিষ্ক্রিয় করলেও আপনি প্রোগ্রাম্যাটিকভাবে ক্যামেরার অবস্থান পরিবর্তন করতে পারবেন কি না, তাতে কোনো প্রভাব পড়ে না।
UI কন্ট্রোলের মতোই, আপনি UiSettings ক্লাস ব্যবহার করে জেসচার চালু/বন্ধ করতে পারেন, যা GoogleMap.getUiSettings কল করে একটি GoogleMap থেকে পাওয়া যায়। এই ক্লাসে করা পরিবর্তনগুলো ম্যাপে তাৎক্ষণিকভাবে প্রতিফলিত হয়। এই বৈশিষ্ট্যগুলোর একটি উদাহরণ দেখতে, নমুনা অ্যাপ্লিকেশনের UI Settings ডেমো অ্যাক্টিভিটিটি দেখুন (এটি কীভাবে ইনস্টল করতে হয় তা জানতে এখানে দেখুন)।
ম্যাপ তৈরি করার সময়ও আপনি XML অ্যাট্রিবিউট অথবা GoogleMapOptions ক্লাস ব্যবহার করে এই অপশনগুলো কনফিগার করতে পারেন। আরও বিস্তারিত জানতে ‘ম্যাপ কনফিগার করা’ দেখুন।
জুম অঙ্গভঙ্গি
মানচিত্রটি বিভিন্ন অঙ্গভঙ্গিতে সাড়া দেয়, যেগুলোর মাধ্যমে ক্যামেরার জুমের মাত্রা পরিবর্তন করা যায়:
- জুম লেভেল ১ বাড়াতে (জুম ইন করতে) দুইবার ট্যাপ করুন।
- দুই আঙুল দিয়ে ট্যাপ করে জুম লেভেল ১ কমানো যায় (জুম আউট)।
- দুই আঙুল দিয়ে চিমটি/টান
- এক আঙুল দিয়ে দুবার ট্যাপ করে জুম করুন, তবে দ্বিতীয়বার ট্যাপ করার পর আঙুলটি ছেড়ে দেবেন না। এরপর জুম আউট করতে আঙুলটি উপরের দিকে, অথবা জুম ইন করতে নিচের দিকে স্লাইড করুন।
আপনি UiSettings.setZoomGesturesEnabled(boolean) কল করে জুম জেসচার নিষ্ক্রিয় করতে পারেন। এটি ব্যবহারকারী জুম ইন এবং আউট করার জন্য জুম কন্ট্রোল ব্যবহার করতে পারবে কি না, তার উপর কোনো প্রভাব ফেলবে না।
স্ক্রোল (প্যান) অঙ্গভঙ্গি
ব্যবহারকারী তার আঙুল দিয়ে ম্যাপটি টেনে স্ক্রল (প্যান) করতে পারেন। UiSettings.setScrollGesturesEnabled(boolean) কল করে স্ক্রলিং নিষ্ক্রিয় করা যায়।
নতি অঙ্গভঙ্গি
ব্যবহারকারী ম্যাপের উপর দুটি আঙুল রেখে সেগুলোকে একসাথে নিচে বা উপরে সরিয়ে যথাক্রমে হেলানোর কোণ বাড়াতে বা কমাতে পারেন। আপনি UiSettings.setTiltGesturesEnabled(boolean) কল করে টিল্ট জেসচার নিষ্ক্রিয় করতে পারেন।
ঘূর্ণন অঙ্গভঙ্গি
ব্যবহারকারী ম্যাপের উপর দুটি আঙুল রেখে ঘূর্ণন গতি প্রয়োগ করে ম্যাপটি ঘোরাতে পারেন। UiSettings.setRotateGesturesEnabled(boolean) কল করে ঘূর্ণন নিষ্ক্রিয় করা যায়।