1

一段时间以来,我一直在使用出色的 OpenStreetMap 映射库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

有任何想法吗?

4

2 回答 2

2

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

https://github.com/cavis/leafpile

另外,我正在做一个与你类似的项目 - https://github.com/cavis/slidemapper。这是一个 jquery 插件,用于创建在地图上跟随的幻灯片。我正在努力将我的叶子插件直接集成到其中。

于 2012-07-15T17:13:48.300 回答
0

也许您必须使用以下方法缩放到集群层zoomToShowLayer

https://github.com/Leaflet/Leaflet.markercluster/issues/75

于 2012-12-05T05:43:49.840 回答