当点击其他地方时,Google会将api close infowindow映射

时间:2015-03-18 23:17:39

标签: api google-maps maps

我试过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);
        });


    });
});

1 个答案:

答案 0 :(得分:2)

查看我添加的JS Fiddle代码

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

显然要抓住地图上所有打开的项目,你必须使用一个小循环来捕捉它们在该函数中的所有内容,但这是我留给你的东西。我会添加一个变量来跟踪你创建的数量,然后将“infowindow”+ var_index循环到该最大值,将'em all设置为关闭。我仍然在寻找一种更好的方法来抓住所有开放的信息窗口,但同时这种技术也会起作用。