单击标记并使信息窗口可见时,它会触发bounds_changed事件。我怎样才能禁用它?

时间:2016-03-21 05:59:55

标签: javascript google-maps google-maps-api-3

我有一个谷歌地图,可以刷新bounds_changed事件的标记数据。点击标记后,我打开了一个信息窗口。现在,如果标记位于地图的一角,则会移动一个地图以适应弹出到地图视图中。

现在,此时我的bounds_changed事件再次被触发,它将再次使用新数据绑定所有标记。因此,这不是一个非常流畅的用户体验。我怎么解决这个问题?

提前致谢。

1 个答案:

答案 0 :(得分:0)

理论解决方案:当bounds_changed事件被解雇时,你需要做 NOTHING

实用解决方案:

1)您必须addlistenerbounds_changed事件并忽略该事件。你这样做的方式是:

var ignore = false; // this var is global;
currentBoundsListener = google.maps.event.addListener(map, 'bounds_changed', function () {
if(ignore) {
   ignore = false;
   return;
}

// Whatever.
});

2)ignore变量默认设置为false,当用户点击标记时,需要设置为true,此时显示infowindow

   google.maps.event.addListener(marker, 'click', (function(marker, i) {
                ignore = true;
                })(marker, i)); //end add marker listener

1)How ignore bounds_changed event 2)How add listener to marker click event