我已经使用很棒的 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

有任何想法吗?

有帮助吗?

解决方案

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

https://github.com/cavis/leafpile

此外,我正在研究与您的类似项目 - https://github.com/cavis/slidemapper。它是一个jQuery插件,用于创建在地图上遵循的幻灯片。我正在努力将我的叶子插件直接整合到其中。

其他提示

也许您必须使用缩放到集群层 zoomToShowLayer :

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top