
मार्कर, मैप पर जगहों की पहचान करते हैं. डिफ़ॉल्ट मार्कर, स्टैंडर्ड आइकॉन का इस्तेमाल करता है. यह 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) 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 पोज़िशन पर रखा जाएगा. यह डिफ़ॉल्ट रूप से, इमेज के सबसे नीचे बीच में दिखता है.
- अल्फ़ा
- इससे मार्कर की ओपैसिटी सेट होती है. डिफ़ॉल्ट वैल्यू 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-इंडेक्स
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() को कॉल करके, किसी भी समय मार्कर की पोज़िशन का पता लगाया जा सकता है.