2011-04-13 74 views
0
google.maps.Marker.prototype.hide = function() 
{ 
    if (this.div_) 
    { 
     this.div_.style.visibility = "hidden"; 
    } 
}; 
google.maps.Marker.prototype.show = function() 
{ 
    if (this.div_) { 
     this.div_.style.visibility = "visible"; 
    } 
}; 

它不会导致任何错误。但是,尽管即时通讯使用它不工作:隐藏和显示事件标记

marker = new google.maps.Marker({ 
       map: map, 
       draggable: false, 
       position: latlng, 
       title: 'some title' 
      }); 

现在如果有人改变变焦我想要触发隐藏标记:

google.maps.event.addListener(map, 'zoom_changed', function() { 
      marker.hide(); 
}); 

但它不工作。有人可以帮我解决问题吗?

回答

1

隐藏标记使用marker.setMap(null);

显示再次使用marker.setMap(mymap);

编辑:

忘记调用setVisible。这里是一个工作示例: http://jsfiddle.net/herostwist/v9nmQ/1/

+0

也许它不是最好的解决方案,但它的工作原理。谢谢! – Karol 2011-04-13 15:47:55

+0

@Carlos:'setVisible'不工作? – 2011-04-16 01:01:11

+0

我试着用setVisible方法解决问题。也许我做错了,但它不起作用。你能提供一些确实有效的代码吗?谢谢 – Karol 2011-04-22 11:06:41

0

该API已经包含这样一种方法:setVisible。通过truefalse