मैं नीचे के रूप में 2 समारोह है:गूगल मैप्स एपीआई 3 निकालें चयनित मार्कर केवल
function addMarker() {
marker = new google.maps.Marker({
position: Gpoint,
map: map,
draggable: true,
animation: google.maps.Animation.DROP
});
map.panTo(Gpoint);
google.maps.event.addListener(marker, "rightclick",
function (point) {
showContextMarker(point.latLng); });
$('.contextmenu').remove();
};
function delMarker() { marker.setMap(null); $('.contextmenu').remove(); };
तो, समझ सकते हैं के रूप में मैं एक संदर्भ मेनू होने पर विकल्प "मार्कर हटाएँ" है। मैं इस मेनू को दिखाने के लिए, मार्कर जोड़ने के दौरान "दाएं क्लिक" श्रोता को बाध्य कर रहा हूं।
सब कुछ इस पल तक किसी भी समस्या के बिना काम कर रहा है।
लेकिन जब मैं हटाने के लिए मार्कर पर क्लिक करने का प्रयास करता हूं; यह केवल अंतिम जोड़ा मार्कर को प्रभावित कर रहा है। जब मैं दोबारा प्रयास करता हूं; कुछ नहीं हुआ।
तो मेरा विचार है क्लिक किए गए मार्कर की आईडी (या कुछ जो उपयोगी हो सकता है) प्राप्त करना है और इस के अनुसार इस विलोपन समारोह को चलाने के लिए है।
संक्षेप में; मैं उस मार्कर को हटाना चाहता हूं जिसे मैंने कई मार्कर वाले मानचित्र से क्लिक किया था।
क्या आपके पास इस समस्या को हल करने के लिए कोई दृष्टिकोण है?
अग्रिम धन्यवाद!
सोल्ड!
यहां समाधान है। धन्यवाद Fatih। यह आपके मार्गदर्शन के बिना असंभव था:
var id;
var markers = {};
var addMarker = function() {
marker = new google.maps.Marker({
position: Gpoint,
map: map,
draggable: true,
animation: google.maps.Animation.DROP
});
map.panTo(Gpoint);
id = marker.__gm_id
markers[id] = marker;
google.maps.event.addListener(marker, "rightclick", function (point) { id = this.__gm_id; delMarker(id) });
}
var delMarker = function (id) {
marker = markers[id];
marker.setMap(null);
}
कॉलिंग द्वारा समारोह को हटा दें: delMarker(id)
पी.एस.:
धन्यवाद "ठीक क्लिक इस मामले पर पर्याप्त है"!
लेकिन आप क्या हासिल करना चाहते हैं ??? सभी मार्करों को हटा दें? – Jorge
केवल उस पर क्लिक करें जिस पर क्लिक किया गया है! – MrGorki
@ श्री गोरकी, आपने __gm_id कैसे उत्पन्न किया? क्या यह वृद्धि हुई है? – jemz