Google 地图 api 单击其他地方时关闭信息窗口

Google maps api close infowindow when clicking somewhere else

我已经尝试 google 但找不到适用于我的代码的那个。我希望我的信息窗口在每次有人按下地图上的另一个地方或在其他地方打开另一个信息窗口时关闭。

有人可以帮忙吗?

var myLatlng = new google.maps.LatLng(val.coords.split(',')[0].trim(),val.coords.split(',')[1].trim());

var infowindow = null;
        var contentString = '<div id="content">'+
  '<div id="siteNotice"> content'+
  '</div>';


        var infowindow1 = new google.maps.InfoWindow({
            content: contentString,
            maxWidth: 250
        });

        var marker1 = new google.maps.Marker({
            position: myLatlng,
            map: map,
            icon: image,
        });

        google.maps.event.addListener(marker1, 'click', function() {
            infowindow1.open(map,marker1);
        });


    });
});

JS Fiddle 查看代码 我添加了

google.maps.event.addListener(map, 'click', function(){
            infowindow1.close(map, marker1);
        });

显然,要捕获地图上所有打开的项目,您必须使用一个小循环来捕获该函数内的所有项目,但这是我将留给您的事情。我会添加一个变量来跟踪您创建的数量,然后循环 "infowindow"+var_index 到该最大值,将它们全部设置为关闭。我仍在寻找一种更好的方法来获取所有打开的信息窗口,但与此同时,这种技术会奏效。