मार्कर

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript

कई मार्कर वाला मैप

मार्कर, मैप पर जगहों की पहचान करते हैं. डिफ़ॉल्ट मार्कर में स्टैंडर्ड आइकॉन का इस्तेमाल किया जाता है. यह आइकॉन, Google Maps के लुक और फ़ील के हिसाब से सामान्य है. एपीआई की मदद से, आइकॉन का रंग, इमेज या ऐंकर पॉइंट बदला जा सकता है. मार्कर, 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 पोज़िशन पर रखा जाएगा. यह डिफ़ॉल्ट रूप से, इमेज के सबसे नीचे बीच में दिखता है.
अल्फ़ा
इससे मार्कर की ओपैसिटी सेट होती है. डिफ़ॉल्ट वैल्यू 1.0 होती है.
शीर्षक
यह एक स्ट्रिंग है. जब उपयोगकर्ता मार्कर पर टैप करता है, तब यह जानकारी विंडो में दिखती है.
स्निपेट
टाइटल के नीचे दिखने वाला अतिरिक्त टेक्स्ट.
आइकॉन
एक बिट मैप, जो डिफ़ॉल्ट मार्कर इमेज की जगह पर दिखता है.
खींचने और छोड़ने लायक एलिमेंट
अगर आपको उपयोगकर्ता को मार्कर को ले जाने की अनुमति देनी है, तो इसे 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) तरीके का इस्तेमाल करके, कस्टम मार्कर का रंग सेट किया जा सकता है. ह्यू की वैल्यू 0 से 360 के बीच होती है. यह कलर व्हील पर मौजूद पॉइंट को दिखाती है.

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() तरीके का इस्तेमाल करके, मार्कर की ओपैसिटी को कंट्रोल किया जा सकता है. अल्फ़ा को 0.0 और 1.0 के बीच फ़्लोट के तौर पर तय किया जाना चाहिए. इसमें 0 का मतलब पूरी तरह से पारदर्शी और 1 का मतलब पूरी तरह से ओपेक होता है.

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() तरीका. इमेज को घुमाने की वैल्यू, डिफ़ॉल्ट पोज़िशन से घड़ी की सुई की दिशा में डिग्री में मापी जाती है. जब मार्कर मैप पर फ़्लैट होता है, तो डिफ़ॉल्ट पोज़िशन उत्तर होती है. जब मार्कर फ़्लैट नहीं होता है, तो डिफ़ॉल्ट पोज़िशन ऊपर की ओर होती है. साथ ही, रोटेशन इस तरह होता है कि मार्कर हमेशा कैमरे की ओर होता है.

नीचे दिए गए उदाहरण में, मार्कर को 90° घुमाया गया है. ऐंकर पॉइंट को 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-index

z-index, इस मार्कर के स्टैक ऑर्डर के बारे में बताता है. यह ऑर्डर, मैप पर मौजूद अन्य मार्कर के हिसाब से तय होता है. ज़्यादा z-इंडेक्स वाला मार्कर, कम z-इंडेक्स वाले मार्कर के ऊपर दिखता है. डिफ़ॉल्ट z-इंडेक्स वैल्यू 0 है.

मार्कर के विकल्प ऑब्जेक्ट पर z-इंडेक्स सेट करने के लिए, MarkerOptions.zIndex() को कॉल करें. इसके बारे में यहां दिए गए कोड स्निपेट में बताया गया है:

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-index का असर:

  • जब कोई उपयोगकर्ता मार्कर के किसी क्लस्टर पर क्लिक करता है, तो सबसे ज़्यादा z-इंडेक्स वाले मार्कर के लिए क्लिक इवेंट ट्रिगर होता है.
  • हर क्लिक पर ज़्यादा से ज़्यादा एक इवेंट ट्रिगर होता है. दूसरे शब्दों में कहें, तो क्लिक को कम z-इंडेक्स वैल्यू वाले मार्कर या अन्य ओवरले पर नहीं भेजा जाता.
  • मार्कर के क्लस्टर पर क्लिक करने से, उसके बाद के क्लिक, क्लस्टर में साइकल होते हैं. इससे हर एक को बारी-बारी से चुना जाता है. साइकल के क्रम में, सबसे पहले z-इंडेक्स को प्राथमिकता दी जाती है. इसके बाद, क्लिक पॉइंट की दूरी को प्राथमिकता दी जाती है.
  • अगर उपयोगकर्ता क्लस्टर के आस-पास क्लिक करता है, तो एपीआई क्लस्टर का फिर से हिसाब लगाता है. साथ ही, क्लिक साइकल की स्थिति को रीसेट करता है, ताकि वह शुरुआत से शुरू हो सके.
  • मार्कर को अन्य ओवरले या शेप (पॉलीलाइन, पॉलीगॉन, सर्कल, और/या ग्राउंड ओवरले) की तुलना में, अलग z-इंडेक्स ग्रुप में माना जाता है. भले ही, अन्य ओवरले का z-इंडेक्स कुछ भी हो. अगर कई मार्कर, ओवरले या शेप एक-दूसरे के ऊपर ओवरले किए गए हैं, तो क्लिक इवेंट सबसे पहले मार्कर के क्लस्टर से होकर गुज़रता है.

मार्कर को खींचकर छोड़ने से जुड़े इवेंट

मार्कर पर ड्रैग इवेंट को सुनने के लिए, OnMarkerDragListener का इस्तेमाल किया जा सकता है. इस लिसनर को मैप पर सेट करने के लिए, GoogleMap.setOnMarkerDragListener को कॉल करें. मार्कर को खींचकर छोड़ने के लिए, उपयोगकर्ता को मार्कर को दबाकर रखना होगा. जब उपयोगकर्ता स्क्रीन से उंगली हटाएगा, तो मार्कर उसी जगह पर रहेगा. मार्कर को खींचने पर, onMarkerDragStart(Marker) को शुरू में कॉल किया जाता है. मार्कर को खींचकर छोड़ने के दौरान, onMarkerDrag(Marker) को लगातार कॉल किया जाता है. खींचने और छोड़ने की प्रोसेस के आखिर में, onMarkerDragEnd(Marker) को कॉल किया जाता है. Marker.getPosition() को कॉल करके, मार्कर की जगह के बारे में किसी भी समय पता लगाया जा सकता है.