javascript - 将 openPopup() 与 Leaflet.js + 集群一起使用

标签 javascript maps leaflet

我使用出色的 OpenStreetMap map 库 leaflet.js 已经有一段时间了,我刚刚开始实现 this clustering plugin .我已经让它在当前项目中运行良好,该项目将不同的图层加载到 map 上并加载到可点击的侧边栏中。

唯一的问题是,如果我单击侧边栏项目并且相应的标记位于聚类对象中,则会出现错误。我通过检查错误(使用 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 插件,用于创建在 map 上跟随的幻灯片。我正在努力将我的 leafpile 插件直接集成到其中。

关于javascript - 将 openPopup() 与 Leaflet.js + 集群一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9635931/

相关文章:

javascript - OpenLayers 3 Vector 缩放错误位置

ios - 在 ios 的谷歌地图中使用他的坐标获取特定标记

r - 在 Shiny/Leaflet/R 中按缩放级别更改标记聚类

filter - 传单.js : is it possible to filter geoJSON features by property?

javascript - 在javascript中创建对象时如何动态提供字段名?

javascript - 如何使用特殊键监视 onkeyup/down 事件(返回零 keyCode)?

javascript - 四舍五入到最接近的 12 的倍数

javascript - 使用javascript获取鼠标悬停下的所有div

r - 使用传单和 R 为 CircleMarkers 添加边框

leaflet - 我如何在传单 map 中显示 geojson FeatureCollection?