Google地图,从控件数组中删除控件

joh*_*ith 1 javascript arrays google-maps push google-maps-api-3

我有一个谷歌地图,我使用一个hacky解决方案infowindows不显示在一个div覆盖谷歌地图如果进行特殊的用户交互.

我在用户交互后执行此代码:

var controlDiv = document.createElement('div');
controlDiv.style.width = '220px';
controlDiv.style.height = '500px';
map.controls[google.maps.ControlPosition.RIGHT_TOP].push(controlDiv);
Run Code Online (Sandbox Code Playgroud)

这非常有效,但是如果用户关闭了叠加层,我想删除我推入阵列的元素.

我试图拼出它,但我不知道如何选择它,或它的索引是什么.

map.controls[google.maps.ControlPosition.RIGHT_TOP].splice("?", 1);
Run Code Online (Sandbox Code Playgroud)

其他可能性可能是

delete map.controls[google.maps.ControlPosition.RIGHT_TOP]
Run Code Online (Sandbox Code Playgroud)

但我只是提前感谢你不要把这个元素删除了

Dr.*_*lle 9

map.controls [google.maps.ControlPosition.RIGHT_TOP]不是原生数组,它是google.maps.MVCArray

当您仅将此单个自定义控件添加到阵列时,您可以简单地调用:

map.controls[google.maps.ControlPosition.RIGHT_TOP].clear();
Run Code Online (Sandbox Code Playgroud)

当有更多自定义控件迭代控件以查找索引controlDiv和调用时

map.controls[google.maps.ControlPosition.RIGHT_TOP].removeAt(index);
Run Code Online (Sandbox Code Playgroud)

另一种方法:代替添加/移除所述控件添加控制一次和切换displaycontrolDiv.