2012-03-09 19 views
1

我一直在使用梦幻般的OpenStreetMap映射库leaflet.js一段时间了,我刚开始实现this clustering plugin。我已经用当前的项目工作得很好,该项目将不同的图层加载到地图上并转化为可点击的侧边栏。使用openPopup()与Leaflet.js +集群

唯一的问题是,如果我点击一个侧边栏项目,并且相应的标记位于群集对象中,则会出现错误。我解决这个通过了一个错误检查(使用try/catch语句)和缩放,以便该层是可见的,如下:

$('.item').click(function() { 
    currentlayer = this.id; 
... 
     try { 
      geojson._layers[currentlayer].openPopup(); 
     } catch(e) { 
      map.setView(geojson._layers[currentlayer]._latlng, 16); 
      geojson._layers[currentlayer].openPopup(); 
     }     
... 
    return false; 
}); 

唯一的问题是,我在尝试运行openPopup时同样的错误()方法后,虽然,如果我再次点击侧边栏,弹出显示罚款。你可以看到它在这里的行动:

http://www2.lichfielddc.gov.uk/myarea/map2.php

任何想法?

回答

2

是的,我有这个插件相同的问题。所以我开发了我自己的,它应该正确定位弹出窗口。我还在构建一些事件,因此您可以在单击群集时运行一些代码,或者防止缩放级别发生变化。

https://github.com/cavis/leafpile

另外,我工作的一个类似的项目,以你的 - https://github.com/cavis/slidemapper。这是一个jQuery插件,用于在地图上创建幻灯片。我正在将我的leafpile插件直接集成到它中。