1

我正在使用事件click并使用方法和closeclick设置不同的值。 因此,当用户单击地图标记时,它将平移到该标记并放大。这部分正在工作。然后,当信息窗口关闭时,我希望它缩小并平移到原始位置(不工作)。 这两个事件在我的代码中似乎有冲突,所以我需要利用来解决这个冲突吗?以下是相关代码:panTo()setZoom()



clearListeners

function setInfoWindow(mapRef, mapSettings, mapMarker, markerInfoWindow)
{
    // event listener for infowindow of each map marker, onclick
    google.maps.event.addListener(mapMarker, "click", function()
    {
        markerInfoWindow.open(mapRef, this);
        mapRef.panTo(this.position);
        mapRef.setZoom(3);
    });

    // 
    google.maps.event.addListener(mapMarker, "closeclick", function()
    {
        mapRef.panTo(mapSettings.center);
        mapRef.setZoom(2);
    });

} // end of function setInfoWindow
4

1 回答 1

4

发生这种情况是因为您没有在 infoWindow 上侦听关闭事件,而是将其设置为标记。所以只需将mapMarker代码中的更改为markerInfoWindow

google.maps.event.addListener(markerInfoWindow, "closeclick", function()
{
    mapRef.panTo(mapSettings.center);
    mapRef.setZoom(2);
});

这将在 infoWindow 关闭后触发:https ://developers.google.com/maps/documentation/javascript/reference#InfoWindow向下滚动到事件以查看您可以在 infoWindow 上添加侦听器的其他事件。

于 2012-06-11T16:41:00.213 回答