1

我在基于 googlemap 的http://arquitectospelomundo.com上运行这个网站。感谢这个社区,我已经设法让它从 xml 文件中读取数据,将其处理成一个 markerclusterer 对象,并让它显示一个带有内容的侧边栏。现在我正在寻找是否可以仅使用屏幕上看到的标记过滤该侧边栏(放大会从该列表中删除项目)。由于markerclusterer给我带来了困难,因此已经尝试过但没有成功。任何帮助表示赞赏。谢谢!

4

1 回答 1

2

观察地图的 bounds_changed-event 然后循环标记并检查地图的边界是否包含标记:

google.maps.event.addListener(map,'bounds_changed',function(){
var bounds=map.getBounds();
$('#side_bar a').each(function(i,e){
  $(e).add($(e).next('br'))
    .css('display',(bounds.contains(gmarkers[i].getPosition()))?'block':'none');
});
});

这将过滤侧边栏元素,但延迟加载不会注意到变化。但是您可以通过触发滚动事件来强制延迟加载加载图像:

google.maps.event.addListener(map,'bounds_changed',function(){
var bounds=map.getBounds();
$('#side_bar a').each(function(i,e){
  var c=bounds.contains(gmarkers[i].getPosition());
  $(e).add($(e).next('br')).css('display',c?'block':'none')
   .find('img').trigger((c)?'scroll':'void');
});
});
于 2013-03-09T23:24:22.627 回答