Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过调用setMap(null)隐藏地面覆盖而不是删除它_Javascript_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 如何通过调用setMap(null)隐藏地面覆盖而不是删除它

Javascript 如何通过调用setMap(null)隐藏地面覆盖而不是删除它,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我在地图上加载了多个地面覆盖图,我试图保持它们的有序。似乎我唯一能做的就是一个接一个地加载(创建GroundOverlay对象和setMap(map))(如果还有其他更好的方法,请告诉我),这是我现在可以接受的。然而,我也有一些控件(复选框)来打开/关闭一个单独的层,它以完全混乱的顺序结束。例如,假设我有L1、L2、L3三个层,从下到上排列,如果我关闭L2并再次打开,L2将位于L3的顶部,因为关闭时L2已从地图中删除 我的第一次尝试是找到一种方法来管理GroundOverlays的顺序,但我失败

我在地图上加载了多个地面覆盖图,我试图保持它们的有序。似乎我唯一能做的就是一个接一个地加载(创建GroundOverlay对象和setMap(map))(如果还有其他更好的方法,请告诉我),这是我现在可以接受的。然而,我也有一些控件(复选框)来打开/关闭一个单独的层,它以完全混乱的顺序结束。例如,假设我有L1、L2、L3三个层,从下到上排列,如果我关闭L2并再次打开,L2将位于L3的顶部,因为关闭时L2已从地图中删除

我的第一次尝试是找到一种方法来管理GroundOverlays的顺序,但我失败了(找不到);第二次尝试是在关闭图层时尝试是否可以“隐藏”该图层,而不是在调用setMap(null)时删除该图层


有什么想法吗?谢谢

您可以将不透明度设置为零:

myGroundOverlay.setOpacity(0);

谢谢你。如果没有其他选择,我可能不得不这样做。我不情愿这么做的原因是,即使图层是不可见的,但在平移或缩放后,它(图像)仍然被加载(由于范围更改而在服务器上重新生成)。啊,是的。您也可以在每次更改时删除所有这些内容,然后将当前选定的内容按您希望的顺序放回原处。出于性能考虑,这是我最不希望做的