
মার্কার ম্যাপে লোকেশন শনাক্ত করে। ডিফল্ট মার্কার একটি স্ট্যান্ডার্ড আইকন ব্যবহার করে, যা Google Maps-এর লুক ও ফিলের সাথে সামঞ্জস্যপূর্ণ। API-এর মাধ্যমে আইকনের রঙ, ছবি বা অ্যাঙ্কর পয়েন্ট পরিবর্তন করা সম্ভব। মার্কার হল
Marker ধরনের অবজেক্ট এবং এগুলি
GoogleMap.addMarker(markerOptions) পদ্ধতির মাধ্যমে ম্যাপে যোগ করা হয়।
মার্কারগুলি ইন্টার্যাক্টিভ হওয়ার জন্য ডিজাইন করা হয়েছে। এগুলি ডিফল্ট হিসেবে click ইভেন্ট পায় এবং প্রায়ই তথ্য
উইন্ডো দেখানোর জন্য ইভেন্ট লিসনারের সাথে ব্যবহার করা হয়। মার্কারের draggable প্রপার্টি true-এ সেট করলে
ব্যবহারকারী মার্কারের পজিশন পরিবর্তন করতে পারবেন। মার্কার সরানোর সুবিধা চালু করতে
বেশিক্ষণ প্রেস করে রাখুন।
ডিফল্ট হিসেবে, কোনও ব্যবহারকারী মার্কার ট্যাপ করলে, ম্যাপের নিচে ডানদিকে ম্যাপ টুলবার দেখা যায়, যা ব্যবহারকারীকে Google Maps মোবাইল অ্যাপে দ্রুত অ্যাক্সেস দেয়। আপনি টুলবার বন্ধ করতে পারবেন। আরও তথ্যের জন্য, কন্ট্রোল সংক্রান্ত নির্দেশিকা দেখুন।
একটি চিহ্নকারী যুক্ত করুন
ম্যাপে কীভাবে মার্কার যোগ করতে হয় তা নিম্নলিখিত উদাহরণে দেখানো হয়েছে। মার্কারটি
-33.852,151.211 (সিডনি, অস্ট্রেলিয়া) স্থানাঙ্কে তৈরি করা হয়েছে এবং ক্লিক করা হলে
ইনফো উইন্ডোতে 'সিডনিতে মার্কার' স্ট্রিংটি দেখায়।
Kotlin
// Add a marker in Sydney, Australia, // and move the map's camera to the same location. val sydney = LatLng(-33.852, 151.211) map.addMarker( MarkerOptions() .position(sydney) .title("Marker in Sydney"), ) map.moveCamera(CameraUpdateFactory.newLatLng(sydney))
Java
// Add a marker in Sydney, Australia, // and move the map's camera to the same location. LatLng sydney = new LatLng(-33.852, 151.211); map.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); map.moveCamera(CameraUpdateFactory.newLatLng(sydney));
মার্কার সম্পর্কে অতিরিক্ত তথ্য দেখান
ব্যবহারকারী ম্যাপে কোনও মার্কার ট্যাপ করলে, কোনও জায়গা বা লোকেশন সম্পর্কে অতিরিক্ত তথ্য দেখানো হল একটি সাধারণ প্রয়োজনীয়তা। তথ্য উইন্ডো সম্পর্কিত নির্দেশিকা দেখুন।
মার্কারের সাথে ডেটা অ্যাসোসিয়েট করুন
আপনি Marker.setTag() ব্যবহার করে মার্কার সহ একটি ইচ্ছামতো ডেটা অবজেক্ট স্টোর করতে পারেন,
এবং Marker.getTag() ব্যবহার করে ডেটা অবজেক্টটি ফিরিয়ে আনতে পারেন। নিচের স্যাম্পেল থেকে জানতে পারবেন যে
ট্যাগ ব্যবহার করে কোনও মার্কার কতবার ক্লিক করা হয়েছে তা কীভাবে গণনা করবেন:
Kotlin
val PERTH = LatLng(-31.952854, 115.857342) val SYDNEY = LatLng(-33.87365, 151.20689) val BRISBANE = LatLng(-27.47093, 153.0235) val markerPerth = map.addMarker( MarkerOptions() .position(PERTH) .title("Perth"), ) markerPerth?.tag = 0 val markerSydney = map.addMarker( MarkerOptions() .position(SYDNEY) .title("Sydney"), ) markerSydney?.tag = 0 val markerBrisbane = map.addMarker( MarkerOptions() .position(BRISBANE) .title("Brisbane"), ) markerBrisbane?.tag = 0 // Set a listener for marker click. map.setOnMarkerClickListener { marker -> // Retrieve the data from the marker. val clickCount = marker.tag as? Int // Check if a click count was set, then display the click count. clickCount?.let { val newClickCount = it + 1 marker.tag = newClickCount Toast.makeText( context, "${marker.title} has been clicked $newClickCount times.", Toast.LENGTH_SHORT, ).show() } // Return false to indicate default behavior. false }
Java
final LatLng PERTH = new LatLng(-31.952854, 115.857342); final LatLng SYDNEY = new LatLng(-33.87365, 151.20689); final LatLng BRISBANE = new LatLng(-27.47093, 153.0235); Marker markerPerth = map.addMarker(new MarkerOptions().position(PERTH).title("Perth")); markerPerth.setTag(0); Marker markerSydney = map.addMarker(new MarkerOptions().position(SYDNEY).title("Sydney")); markerSydney.setTag(0); Marker markerBrisbane = map.addMarker(new MarkerOptions().position(BRISBANE).title("Brisbane")); markerBrisbane.setTag(0); // Set a listener for marker click. map.setOnMarkerClickListener( new GoogleMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(final Marker marker) { // Retrieve the data from the marker. Integer clickCount = (Integer) marker.getTag(); // Check if a click count was set, then display the click count. if (clickCount != null) { clickCount = clickCount + 1; marker.setTag(clickCount); Toast.makeText( context, marker.getTitle() + " has been clicked " + clickCount + " times.", Toast.LENGTH_SHORT) .show(); } // Return false to indicate default behavior should occur. return false; } });
মার্কারের সাহায্যে ডেটা স্টোর ও ফিরিয়ে আনার সুবিধা কখন কাজে লাগে, তার কিছু উদাহরণ এখানে দেওয়া হল:
- আপনার অ্যাপ বিভিন্ন ধরনের মার্কারের জন্য উপযুক্ত হতে পারে এবং ব্যবহারকারী সেগুলিতে ক্লিক করলে আপনি সেগুলিকে
আলাদাভাবে ট্রিট করতে চান। এটি করার জন্য, আপনি ধরন নির্দেশক মার্কার সহ
Stringস্টোর করতে পারেন। - আপনি এমন একটি সিস্টেমের সাথে ইন্টারফেস করতে পারেন যার অনন্য রেকর্ড শনাক্তকারী রয়েছে, যেখানে মার্কারগুলি সেই সিস্টেমের নির্দিষ্ট রেকর্ডগুলিকে উপস্থাপন করে।
- মার্কার ডেটা থেকে মার্কারের z-ইনডেক্স নির্ধারণ করার সময় ব্যবহার করার জন্য অগ্রাধিকারের ইঙ্গিত পাওয়া যেতে পারে।
মার্কারকে ড্র্যাগ করার উপযুক্ত করা
ম্যাপে মার্কার যোগ করার পরে আপনি সেটির অবস্থান পরিবর্তন করতে পারবেন, তবে তার জন্য
draggable প্রপার্টি true-এ সেট করা থাকতে হবে। টেনে নিয়ে যাওয়ার সুবিধা চালু করতে মার্কারটি বেশিক্ষণ প্রেস করে রাখুন। স্ক্রিন থেকে আঙুল সরিয়ে নিলে, মার্কারটি সেই পজিশনেই
থেকে যাবে।
ডিফল্ট হিসেবে মার্কার ড্র্যাগ করা যায় না। আপনাকে স্পষ্টভাবে মার্কারকে ড্র্যাগেবল হিসেবে সেট করতে হবে,
হয় ম্যাপে যোগ করার আগে MarkerOptions.draggable(boolean) ব্যবহার করে,
অথবা ম্যাপে যোগ করার পরে Marker.setDraggable(boolean) ব্যবহার করে।
মার্কার ড্র্যাগ
ইভেন্ট-এ যেমন বর্ণনা করা হয়েছে, আপনি মার্কারের উপর ড্র্যাগ ইভেন্ট শুনতে পারবেন।
নিচের স্নিপেটটি পার্থ, অস্ট্রেলিয়াতে একটি ড্র্যাগ করা যায় এমন মার্কার যোগ করে।
Kotlin
val perthLocation = LatLng(-31.90, 115.86) val perth = map.addMarker( MarkerOptions() .position(perthLocation) .draggable(true), )
Java
final LatLng perthLocation = new LatLng(-31.90, 115.86); Marker perth = map.addMarker(new MarkerOptions().position(perthLocation).draggable(true));
মার্কার কাস্টমাইজ করা
এই ভিডিওতে ম্যাপে লোকেশন ভিজ্যুয়ালাইজ করার জন্য মার্কার ব্যবহার করার পদ্ধতি দেখানো হয়েছে।
ডিফল্ট আইকনের পরিবর্তে দেখানোর জন্য মার্কার কাস্টম ছবি নির্ধারণ করতে পারে। আইকন সংজ্ঞায়িত করার অর্থ হল এমন কিছু প্রপার্টি সেট করা যা মার্কারের ভিজ্যুয়াল আচরণকে প্রভাবিত করে।
মার্কার নিম্নলিখিত প্রপার্টির মাধ্যমে কাস্টমাইজেশন সাপোর্ট করে:
- পদমর্যাদা (প্রয়োজন)
- ম্যাপে মার্কারের পজিশনের জন্য
LatLngভ্যালু।Markerঅবজেক্টের জন্য শুধুমাত্র এই প্রপার্টি প্রয়োজন। - অ্যাঙ্কর
- ছবির সেই পয়েন্ট যা মার্কারের LatLng পজিশনে প্লেস করা হবে। এটি ডিফল্ট হিসেবে ছবির নিচের দিকের মাঝখানে থাকে।
- আলফা
- মার্কারের অস্বচ্ছতা সেট করে। ডিফল্ট হিসেবে ১.০ সেট করা থাকে।
- শীর্ষক
- ব্যবহারকারী মার্কার ট্যাপ করলে তথ্য উইন্ডোতে দেখানো স্ট্রিং।
- স্নিপেট
- শিরোনামের নিচে দেখানো অতিরিক্ত টেক্সট।
- আইকন
- ডিফল্ট মার্কার ইমেজের জায়গায় দেখানো বিটম্যাপ।
- টেনে আনা যায়
- ব্যবহারকারীকে মার্কার সরানোর অনুমতি দিতে চাইলে,
true-এ সেট করুন। ডিফল্ট হিসেবেfalseসেট করা থাকে। - দৃশ্যমান মার্কার অদৃশ্য করতে
- -কে
false-এ সেট করুন। ডিফল্ট হিসেবেtrueসেট করা থাকে। - ফ্ল্যাট বা বিলবোর্ড ওরিয়েন্টেশন
- ডিফল্ট হিসেবে, মার্কার বিলবোর্ড ওরিয়েন্টেশন ব্যবহার করে, অর্থাৎ ম্যাপের সারফেসের পরিবর্তে ডিভাইসের স্ক্রিনের সাপেক্ষে সেগুলি আঁকা হয়। ম্যাপ ঘোরানো, টিল্ট করা বা জুম করার ফলে মার্কারের ওরিয়েন্টেশন পরিবর্তন হয় না। আপনি মার্কারের ওরিয়েন্টেশন এমনভাবে সেট করতে পারেন যাতে সেটি পৃথিবীর সাপেক্ষে সমতল হয়। ম্যাপ ঘোরানো হলে ফ্ল্যাট মার্কার ঘোরে এবং ম্যাপ কাত করা হলে পার্সপেক্টিভ পরিবর্তন করে। বিলবোর্ড মার্কারের মতো, ম্যাপ জুম-ইন বা জুম-আউট করা হলেও ফ্ল্যাট মার্কারের সাইজ একই থাকে।
- রোটেশন
- মার্কারের ওরিয়েন্টেশন, ঘড়ির কাঁটার দিকে ডিগ্রি হিসেবে উল্লেখ করা হয়েছে। মার্কার ফ্ল্যাট হলে ডিফল্ট পজিশন পরিবর্তন হয়। ফ্ল্যাট মার্কারের ডিফল্ট পজিশন উত্তর দিকে সারিবদ্ধ করা থাকে। মার্কারটি ফ্ল্যাট না হলে, ডিফল্ট পজিশনটি উপরের দিকে নির্দেশ করে এবং রোটেশন এমন হয় যে মার্কারটি সর্বদা ক্যামেরার দিকে মুখ করে থাকে।
নিচের স্নিপেট ডিফল্ট আইকন সহ একটি সাধারণ মার্কার তৈরি করে।
Kotlin
val melbourneLocation = LatLng(-37.813, 144.962) val melbourne = map.addMarker( MarkerOptions() .position(melbourneLocation), )
Java
final LatLng melbourneLocation = new LatLng(-37.813, 144.962); Marker melbourne = map.addMarker(new MarkerOptions().position(melbourneLocation));
মার্কারের রঙ কাস্টমাইজ করুন
icon() পদ্ধতিতে একটি BitmapDescriptor অবজেক্ট পাস করে ডিফল্ট মার্কার ইমেজের রঙ কাস্টমাইজ করা সম্ভব। আপনি BitmapDescriptorFactory
অবজেক্টে আগে থেকে নির্ধারিত রঙের সেট ব্যবহার করতে পারেন অথবা
BitmapDescriptorFactory.defaultMarker(float hue) পদ্ধতির মাধ্যমে কাস্টম মার্কারের রঙ সেট করতে পারেন। হিউ হল ০ থেকে ৩৬০-এর মধ্যে একটি মান, যা কালার হুইলের পয়েন্টকে দেখায়।
Kotlin
val melbourneLocation = LatLng(-37.813, 144.962) val melbourne = map.addMarker( MarkerOptions() .position(melbourneLocation) .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)), )
Java
final LatLng melbourneLocation = new LatLng(-37.813, 144.962); Marker melbourne = map.addMarker( new MarkerOptions() .position(melbourneLocation) .icon( BitmapDescriptorFactory.defaultMarker( BitmapDescriptorFactory.HUE_AZURE)));
মার্কারের অস্বচ্ছতা কাস্টমাইজ করুন
MarkerOptions.alpha() পদ্ধতির মাধ্যমে আপনি মার্কারের অস্বচ্ছতা নিয়ন্ত্রণ করতে পারবেন। আলফা ০.০ থেকে ১.০-এর মধ্যে ফ্লোট হিসেবে উল্লেখ করতে হবে, যেখানে ০ হল সম্পূর্ণ স্বচ্ছ এবং ১ হল সম্পূর্ণ অস্বচ্ছ।
Kotlin
val melbourneLocation = LatLng(-37.813, 144.962) val melbourne = map.addMarker( MarkerOptions() .position(melbourneLocation) .alpha(0.7f), )
Java
final LatLng melbourneLocation = new LatLng(-37.813, 144.962); Marker melbourne = map.addMarker(new MarkerOptions().position(melbourneLocation).alpha(0.7f));
মার্কার ছবি কাস্টমাইজ করুন
আপনি ডিফল্ট মার্কার ছবিকে কাস্টম মার্কার ছবি দিয়ে পরিবর্তন করতে পারবেন, যাকে প্রায়ই
আইকন বলা হয়। কাস্টম আইকন সবসময় BitmapDescriptor হিসেবে সেট করা হয় এবং
BitmapDescriptorFactory ক্লাসের কোনও একটি পদ্ধতি ব্যবহার করে
সংজ্ঞায়িত করা হয়।
fromAsset(String assetName)- অ্যাসেট ডিরেক্টরিতে বিটম্যাপ ছবির নাম ব্যবহার করে কাস্টম মার্কার তৈরি করে।
fromBitmap(Bitmap image)- বিটম্যাপ ছবি থেকে কাস্টম মার্কার তৈরি করে।
fromFile(String fileName)- ইন্টার্নাল স্টোরেজে থাকা বিটম্যাপ ইমেজ ফাইলের নাম ব্যবহার করে কাস্টম আইকন তৈরি করে।
fromPath(String absolutePath)- বিটম্যাপ ছবির অ্যাবসোলিউট ফাইল পাথ থেকে কাস্টম মার্কার তৈরি করে।
fromResource(int resourceId)- বিটম্যাপ ছবির রিসোর্স আইডি ব্যবহার করে কাস্টম মার্কার তৈরি করে।
নিচের স্নিপেট কাস্টম আইকন সহ মার্কার তৈরি করে।
Kotlin
val melbourneLocation = LatLng(-37.813, 144.962) val melbourne = map.addMarker( MarkerOptions() .position(melbourneLocation) .title("Melbourne") .snippet("Population: 4,137,400") .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)), )
Java
final LatLng melbourneLocation = new LatLng(-37.813, 144.962); Marker melbourne = map.addMarker( new MarkerOptions() .position(melbourneLocation) .title("Melbourne") .snippet("Population: 4,137,400") .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)));
মার্কার ফ্ল্যাটেন করুন
মার্কার আইকন সাধারণত স্ক্রিনের সাপেক্ষে আঁকা হয়; ম্যাপ ঘোরানো, কাত করা বা জুম করা হলে মার্কারের ওরিয়েন্টেশন পরিবর্তন হবে না। আপনি পৃথিবীর সাপেক্ষে সমতল হিসেবে মার্কারের ওরিয়েন্টেশন সেট করতে পারবেন। এইভাবে ওরিয়েন্ট করা মার্কারগুলি ম্যাপ ঘোরানোর সময় ঘুরবে এবং ম্যাপ কাত করার সময় দৃষ্টিকোণ পরিবর্তন করবে। ম্যাপ জুম-ইন বা জুম-আউট করা হলেও ফ্ল্যাট মার্কারের সাইজ একই থাকবে।
মার্কারের ওরিয়েন্টেশন পরিবর্তন করতে, মার্কারের flat প্রপার্টি
true-এ সেট করুন।
Kotlin
val perthLocation = LatLng(-31.90, 115.86) val perth = map.addMarker( MarkerOptions() .position(perthLocation) .flat(true), )
Java
final LatLng perthLocation = new LatLng(-31.90, 115.86); Marker perth = map.addMarker(new MarkerOptions().position(perthLocation).flat(true));
মার্কার ঘোরানো
আপনি
Marker-এর সাহায্যে মার্কারকে তার অ্যাঙ্কর পয়েন্টের চারপাশে ঘোরাতে পারবেন।setRotation()টি পদ্ধতি। ডিফল্ট পজিশন থেকে ঘড়ির কাঁটার দিকে
ডিগ্রিতে রোটেশন পরিমাপ করা হয়। ম্যাপে মার্কার ফ্ল্যাট থাকলে, ডিফল্ট
পজিশন হল উত্তর। মার্কারটি ফ্ল্যাট না হলে, ডিফল্ট পজিশনটি উপরের দিকে নির্দেশ করে
এবং এমনভাবে ঘোরে যাতে মার্কারটি সবসময় ক্যামেরার দিকে মুখ করে থাকে।
নিচের উদাহরণে মার্কারটি ৯০° ঘোরানো হয়েছে। অ্যাঙ্কর পয়েন্ট
0.5,0.5-এ সেট করলে মার্কারটি তার বেসের পরিবর্তে কেন্দ্রের চারপাশে ঘোরে।
Kotlin
val perthLocation = LatLng(-31.90, 115.86) val perth = map.addMarker( MarkerOptions() .position(perthLocation) .anchor(0.5f, 0.5f) .rotation(90.0f), )
Java
final LatLng perthLocation = new LatLng(-31.90, 115.86); Marker perth = map.addMarker( new MarkerOptions() .position(perthLocation) .anchor(0.5f, 0.5f) .rotation(90.0f));
মার্কার z-ইনডেক্স
z-ইনডেক্স এই মার্কারের স্ট্যাক অর্ডার নির্দিষ্ট করে, যা ম্যাপের অন্যান্য মার্কারের সাথে
সম্পর্কিত। কম z-ইনডেক্স সহ মার্কারের উপরে বেশি z-ইনডেক্স সহ মার্কার আঁকা হয়। ডিফল্ট z-ইনডেক্স ভ্যালু হল 0।
MarkerOptions.zIndex() কল করে মার্কারের বিকল্প অবজেক্টে z-ইনডেক্স সেট করুন,
যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:
Kotlin
map.addMarker( MarkerOptions() .position(LatLng(10.0, 10.0)) .title("Marker z1") .zIndex(1.0f), )
Java
map.addMarker( new MarkerOptions().position(new LatLng(10, 10)).title("Marker z1").zIndex(1.0f));
Marker.getZIndex() কল করে আপনি মার্কারের z-ইনডেক্স অ্যাক্সেস করতে পারবেন এবং Marker.setZIndex() কল করে
এটি পরিবর্তন করতে পারবেন।
মার্কার সবসময় টাইল লেয়ার ও অন্যান্য নন-মার্কার ওভারলে (গ্রাউন্ড ওভারলে, পলিলাইন, পলিগন ও অন্যান্য আকার) উপরে আঁকা হয়, অন্যান্য ওভারলের z-ইনডেক্স যাই হোক না কেন। মার্কারগুলিকে কার্যকরভাবে অন্যান্য ওভারলেগুলির তুলনায় একটি পৃথক z-ইনডেক্স গ্রুপে বিবেচনা করা হয়।
নিচে ক্লিক ইভেন্টে z-ইনডেক্সের প্রভাব সম্পর্কে পড়ুন।
মার্কার ইভেন্ট ম্যানেজ করুন
Maps API আপনাকে মার্কার ইভেন্ট শুনতে ও তার উত্তর দিতে দেয়। এইসব ইভেন্ট শুনতে, আপনাকে অবশ্যই GoogleMap অবজেক্টে সংশ্লিষ্ট লিসনার সেট করতে হবে
যেখানে মার্কারগুলি রয়েছে। ম্যাপের কোনও একটি মার্কারের উপর ইভেন্ট ঘটলে, প্যারামিটার হিসেবে পাস করা সংশ্লিষ্ট Marker অবজেক্টের সাথে লিসনারের কলব্যাক
ইনভোক করা হবে। এই Marker অবজেক্টের সাথে আপনার নিজের রেফারেন্সের Marker অবজেক্টের তুলনা করতে, আপনাকে অবশ্যই
equals() ব্যবহার করতে হবে, == নয়।
আপনি নিম্নলিখিত ইভেন্ট শুনতে পারবেন:
মার্কার ক্লিক ইভেন্ট
মার্কারে ক্লিক ইভেন্ট শোনার জন্য
আপনি OnMarkerClickListener ব্যবহার করতে পারেন। ম্যাপে এই লিসেনার সেট করতে,
GoogleMap.setOnMarkerClickListener(OnMarkerClickListener) কল করুন। কোনও ব্যবহারকারী
মার্কারে ক্লিক করলে, onMarkerClick(Marker) কল করা হবে এবং মার্কারটি
আর্গুমেন্ট হিসেবে পাস করা হবে। এই পদ্ধতিটি একটি বুলিয়ান রিটার্ন করে যা নির্দেশ করে
আপনি ইভেন্টটি ব্যবহার করেছেন কিনা (অর্থাৎ, আপনি ডিফল্ট
আচরণ দমন করতে চান)। এটি false রিটার্ন করলে, আপনার কাস্টম অ্যাকশনের সাথে ডিফল্ট অ্যাকশনও
সম্পন্ন হবে। মার্কার ক্লিক ইভেন্টের ডিফল্ট অ্যাকশন হল এটির তথ্য উইন্ডো (উপলভ্য থাকলে) দেখানো এবং ক্যামেরা এমনভাবে সরানো যাতে মার্কারটি ম্যাপের কেন্দ্রে থাকে।
ক্লিক ইভেন্টে z-ইনডেক্সের প্রভাব:
- ব্যবহারকারী মার্কারের ক্লাস্টারে ক্লিক করলে, সবচেয়ে বেশি z-ইনডেক্স থাকা মার্কারের জন্য ক্লিক ইভেন্ট ট্রিগার হয়।
- প্রতি ক্লিকে সর্বাধিক একটি ইভেন্ট ট্রিগার করা হয়। অন্যভাবে বলতে গেলে, ক্লিকটি মার্কার বা কম z-ইনডেক্স মান সহ অন্যান্য ওভারলেতে পাস করা হয় না।
- মার্কারের ক্লাস্টারে ক্লিক করলে, পরবর্তী ক্লিকগুলি ক্লাস্টারের মাধ্যমে সাইকেল করে, প্রতিটি ঘুরে ঘুরে বেছে নেয়। চক্রের ক্রম প্রথমে z-ইনডেক্সকে অগ্রাধিকার দেয়, তারপর ক্লিক পয়েন্টের নৈকট্যকে।
- ব্যবহারকারী ক্লাস্টারের কাছাকাছি ক্লিক না করলে, API ক্লাস্টারটি আবার গণনা করে এবং ক্লিক চক্রের অবস্থা রিসেট করে যাতে এটি শুরু থেকে শুরু হয়।
- অন্যান্য ওভারলে বা আকারের (পলিলাইন, পলিগন, বৃত্ত এবং/অথবা গ্রাউন্ড ওভারলে) তুলনায় মার্কারগুলিকে কার্যকরভাবে একটি পৃথক z-ইনডেক্স গ্রুপে বিবেচনা করা হয়, অন্যান্য ওভারলেগুলির z-ইনডেক্স যাই হোক না কেন। একাধিক মার্কার, ওভারলে বা আকার একে অপরের উপরে ওভারলে করা থাকলে, ক্লিক ইভেন্টটি প্রথমে মার্কারের ক্লাস্টারের মাধ্যমে সাইকেল করা হয়।
মার্কার ড্র্যাগ ইভেন্ট
মার্কারের উপর ড্র্যাগ ইভেন্ট শোনার জন্য
আপনি OnMarkerDragListener ব্যবহার করতে পারেন। ম্যাপে এই লিসেনার সেট করতে,
GoogleMap.setOnMarkerDragListener কল করুন। মার্কার টেনে আনতে, ব্যবহারকারীকে মার্কারের উপর
বেশিক্ষণ প্রেস করে রাখতে হবে। ব্যবহারকারী স্ক্রিন থেকে আঙুল সরিয়ে নিলে, মার্কারটি
সেই পজিশনেই থাকবে। মার্কার টেনে আনা হলে,
প্রথমে onMarkerDragStart(Marker) কল করা হয়। মার্কার টেনে নিয়ে যাওয়ার সময়, onMarkerDrag(Marker) ক্রমাগত কল করা হয়। টেনে নিয়ে যাওয়ার শেষে
onMarkerDragEnd(Marker) কল করা হয়। আপনি যেকোনও সময় Marker.getPosition()-এ কল করে মার্কারের অবস্থান
জানতে পারবেন।