2011-11-01 11 views
23

मैं एक मार्कर है कि इस तरह से आरंभ किया गया था दूर करने के लिए कोशिश कर रहा हूँ:गूगल मैप्स एपीआई v3 में एक मार्कर निकाला जा रहा है

marker = new google.maps.Marker({ 
    position: latLng, 
    map: map, 
    draggable: true, 
    animation: google.maps.Animation.DROP, 
    title: 'Marker 1', 
    icon: redPin 
}); 

google.maps.event.addListener(marker, "click", function() { 
    showMarkerDialog(marker.position, "marker"); 
}); 

google.maps.event.addListener(marker, "dblclick", function() { 
    // Add a alert: Are you sure you want to remove this marker? 

    map.removeOverlay(marker); 
}); 

सब कुछ है कि को छोड़कर पूरी तरह से काम करता है जब मैं दोगुना इसे क्लिक करें क्या मैं पर मिल दूर करने के लिए त्रुटि कंसोल यह है:

TypeError: Object # has no method 'removeOverlay'

मैं क्या गलत कर रहा हूं?

+6

तो, "सब कुछ" "पूरी तरह से" अपने _entire_ हटाने तंत्र को छोड़कर काम करता है। –

उत्तर

65

नक्शा वस्तु पर कोई removeOverlay समारोह नहीं है। लगता है जैसे आपके पास केवल एक मार्कर है, एक सरणी का उपयोग क्यों करें? बस इस बदलें:

google.maps.event.addListener(marker, "dblclick", function() { 
    map.removeOverlay(marker); 
}); 
इस के लिए

:

marker.addListener("dblclick", function() { 
    marker.setMap(null); 
}); 
+0

क्या होगा यदि मेरे पास एकाधिक मार्कर हैं और एक विशिष्ट को हटाना चाहते हैं? क्या मैं "मार्कर [इंडेक्स]" का संदर्भ दे सकता हूं? –

+1

हां, अपने सभी मार्करों की एक सरणी है, फिर आप उन्हें इस तरह संदर्भित कर सकते हैं। – duncan

+0

इस उत्तर को पढ़ने वाले किसी भी व्यक्ति के लिए आप इस लिंक पर और अधिक पढ़ सकते हैं: https://developers.google.com/maps/documentation/javascript/examples/marker-remove –

संबंधित मुद्दे