我试图有一个可以打开和关闭多个圆圈的按钮(显示/隐藏可见性)。假设我只有一个html按钮,并且我已经将google.maps.event.addDomListener添加到该按钮,我见过的很多例子都使用setMap()来确定圆圈是否已经存在。
if(circle.setMap() != null){
circle.setMap(null);
}else{
circle.setMap(map);
}
然而,这只会移除圆圈,但再次单击按钮时不会将其添加回来。如果圆不是NULL并且如此评估,那么我将圆设置为null。如何在第二次单击按钮时循环.setMap()!= null应该为false,但它只是继续运行if语句而不是else。
我能够通过使用getMap()代替它来修复它。
if(circle.getMap() != null){
circle.setMap(null);
}else{
circle.setMap(map);
}
getMap()到底在做什么?为什么当我在很多例子中看到它时(即使对于折线和矩形),getMap()!= null不工作???
我的第二个问题是,这是正确的方法吗?或者我将填充和描边不透明度设置为0会更好吗?另外我通过使用setMap(null)来隐藏圆圈和setMap(map)来显示它的方式,地图如何知道用于重新添加/显示圆圈的参数?我问这是因为我的圆圈zindex会强制它们在我绘制的一些折线下方,但是当我隐藏圆圈而不是再显示它时,它是在折线的顶部但仍然是正确的尺寸和位置?
感谢任何煽动!
答案 0 :(得分:1)
$(function() {
var pageScan = {
speed : 10000,
loop : true,
delayRestart : 1000,
start : function(){
pageHeight = $('body').height() - window.innerHeight;
pageScan.proc(pageHeight);
},
proc : function(to){
$("body").animate(
{scrollTop: to},
pageScan.speed,
"linear",
function(){
if (pageScan.loop) {
setTimeout(function() {
window.scrollTo(0, 0);
pageScan.start();
}, pageScan.delayRestart);
}
});
}
};
pageScan.start();
});
时, getMap()
仅返回null
如果您未设置map-property,则会返回null
只需检查undefined
的returnValue是否评估为getMap()
或true
false
与第二个问题相关:
而不是if(circle.getMap()){
circle.setMap(null);
}else{
circle.setMap(map);
}
使用setMap
来显示/隐藏形状:
setVisible