gpt4 book ai didi

javascript - Google Map API - 使用 getMap() 或 setMap() 评估圆圈

转载 作者:行者123 更新时间:2023-12-03 07:31:52 26 4
gpt4 key购买 nike

我试图有一个按钮可以打开和关闭多个圆圈(显示/隐藏可见性)。假设我只有一个 html 按钮,并且我已经向该按钮添加了 google.maps.event.addDomListener,我见过的很多示例都使用 setMap() 来确定圆圈是否已经存在。

if(circle.setMap() != null){ 
circle.setMap(null);
}else{
circle.setMap(map);
}

但这只会删除圆圈,但再次单击按钮后不会将其添加回来。如果圆不为 NULL 并且按此计算,则我将圆设置为 null。当第二次单击按钮时,circle.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) 显示圆圈来完成此操作, map 如何知道使用哪些参数来重新添加/显示圆圈?我问这个问题是因为我的圆圈 zindex 迫使它们低于我绘制的一些折线,但是当我隐藏圆圈而不是再次显示它时,它位于折线之上,但仍然是正确的大小和位置?

感谢您的鼓励!

最佳答案

getMap() 仅在将 map 属性设置为 null 时返回 null

当您不设置 map 属性时,它会返回未定义

只需检查 getMap() 的 returnValue 计算结果是否为 truefalse

if(circle.getMap()){ 
circle.setMap(null);
}else{
circle.setMap(map);
}

与第二个问题相关:

使用 setVisible 代替 setMap 来显示/隐藏形状:

if(circle.getVisible()){ 
circle.setVisible(false);
}else{
circle.setVisible(true);
}

关于javascript - Google Map API - 使用 getMap() 或 setMap() 评估圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35785374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com