Google 映射 API V3 对多个标记数组的相同事件侦听器

Google Maps API V3 same event lister to multiple arrays of markers

所以基本上我有这样的东西

var arrayOfMarker1 = [...], arrayOfMarker2 = [...], ... arrayOfMarkerN = [...];

并且我想使用一个能够关闭当前打开的 infoPanel 的 eventListener 来显示上次单击的信息面板,即使它是要单击的另一个数组的标记。

示例:

我唯一找到的就是这个

marker.addListener('click', function () {
    infowindow.setContent(this.html);
    infowindow.open(map, this);
});

但它只适用于同一数组的标记。有什么办法吗?

您需要一个全局变量来跟踪最后打开的信息面板。

var openedInfoWindow = null;
marker.addListener('click', function () {
    if(openedInfoWindow != null)
    {
        openedInfoWindow.close();
    }
    openedInfoWindow = infowindow;
    infowindow.setContent(this.html);
    infowindow.open(map, this);
});