মার্কার

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

একাধিক মার্কার সহ ম্যাপ

মার্কার ম্যাপে লোকেশন শনাক্ত করে। ডিফল্ট মার্কার একটি স্ট্যান্ডার্ড আইকন ব্যবহার করে, যা 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)
val marker = map.addMarker(
    MarkerOptions()
        .position(sydney)
        .title("Marker in Sydney")
)
marker?.let {
    val position = it.position
    val title = it.title
    val snippet = it.snippet
    val isDraggable = it.isDraggable
    val isFlat = it.isFlat
    val isVisible = it.isVisible
    val alpha = it.alpha
    val rotation = it.rotation
    val zIndex = it.zIndex
}
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);
Marker marker = 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)
)
map.moveCamera(com.google.android.gms.maps.CameraUpdateFactory.newLatLngZoom(perthLocation, 10f))

      

Java

final LatLng perthLocation = new LatLng(-31.90, 115.86);
Marker perth = map.addMarker(
    new MarkerOptions()
        .position(perthLocation)
        .draggable(true));
map.moveCamera(com.google.android.gms.maps.CameraUpdateFactory.newLatLngZoom(perthLocation, 10f));

      

মার্কার কাস্টমাইজ করা

এই ভিডিওতে ম্যাপে লোকেশন দেখানোর জন্য মার্কার ব্যবহার করার পদ্ধতি দেখানো হয়েছে।

ডিফল্ট আইকনের পরিবর্তে দেখানোর জন্য মার্কার কাস্টম ছবি নির্ধারণ করতে পারে। কোনও আইকনকে সংজ্ঞায়িত করার মধ্যে বেশ কিছু প্রপার্টি সেট করা জড়িত যা মার্কারের ভিজ্যুয়াল আচরণকে প্রভাবিত করে।

মার্কার নিম্নলিখিত প্রপার্টির মাধ্যমে কাস্টমাইজেশন সাপোর্ট করে:

পজিশন (প্রয়োজন)
ম্যাপে মার্কারের পজিশনের জন্য 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)
Bitmap ছবির অ্যাবসলিউট ফাইল পাথ থেকে কাস্টম মার্কার তৈরি করে।
fromResource(int resourceId)
Bitmap ছবির রিসোর্স আইডি ব্যবহার করে কাস্টম মার্কার তৈরি করে।

নিচের স্নিপেট কাস্টম আইকন সহ মার্কার তৈরি করে।

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-index, ম্যাপে থাকা অন্যান্য মার্কারের তুলনায় এই মার্কারের স্ট্যাক অর্ডার নির্দিষ্ট করে। কম z-ইনডেক্স সহ মার্কারের উপরে বেশি z-ইনডেক্স সহ মার্কার আঁকা হয়। ডিফল্ট z-index ভ্যালু হল 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() নম্বরে কল করে আপনি যেকোনও সময় মার্কারের পজিশন জানতে পারবেন।