我想清除 Google map 上的标记。marker.setVisible(false)
和有什么区别和 marker.setMap(null)
?
但我不知道,哪个是正确的?
最佳答案
这两种方法之间的区别似乎没有明确记录。但是,请注意以下几点:
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)
当我们打算在 map 上重新显示标记时的方法,setMap(null)
当我们不再展示它时。
关于javascript - Google Maps v3 中的 "marker.setVisible(false)"和 "marker.setMap(null)"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3647711/