我有一个谷歌地图,可以刷新bounds_changed事件的标记数据。点击标记后,我打开了一个信息窗口。现在,如果标记位于地图的一角,则会移动一个地图以适应弹出到地图视图中。
现在,此时我的bounds_changed事件再次被触发,它将再次使用新数据绑定所有标记。因此,这不是一个非常流畅的用户体验。我怎么解决这个问题?
提前致谢。
答案 0 :(得分:0)
理论解决方案:当bounds_changed
事件被解雇时,你需要做 NOTHING 。
实用解决方案:
1)您必须addlistener
到bounds_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