दो विधियों के बीच अंतर स्पष्ट रूप से प्रलेखित नहीं प्रतीत होता है।
आप setMap(null)
उपयोग करते हैं, अपने मार्कर Map
के संदर्भ खो देंगे: हालांकि, निम्नलिखित ध्यान दें। यदि आप Map
ऑब्जेक्ट का संदर्भ नहीं रखते हैं, तो आप मार्कर को फिर से रीसेट करने में सक्षम नहीं होंगे।
इसके अलावा, setMap()
विधि visible_changed
घटना शुरू नहीं करता, जबकि setVisible()
विधि करता है (यदि दृश्यता वास्तव में चालू किए जाने पर)।
उदाहरण:
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: new google.maps.LatLng(-25.363, 131.044),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
position: new google.maps.LatLng(-25.363, 131.044),
map: map
});
google.maps.event.addListener(marker, 'visible_changed', function() {
console.log('visible_changed triggered');
});
marker.setVisible(false); // visible_changed triggered
marker.setVisible(true); // visible_changed triggered
marker.setMap(null); // visible_changed not triggered
marker.setMap(map); // visible_changed not triggered
मुझे लगता है कि हम का उपयोग करना चाहिए setVisible(false)
विधि जब हम मानचित्र पर फिर मार्कर reshow को setMap(null)
का इरादा है, और जब हम इसे फिर से दिखा नहीं किया जाएगा।
स्रोत
2010-09-05 22:23:39
संक्षेप में, 'सेटमैप (शून्य) 'मार्करों के 1000s के लिए बेहतर प्रदर्शन प्रदान करेगा – Federico