javascript – 获取Leaflet中当前地图范围内的标记/图层列表

这有点类似于问到here的问题 –

我正在为地图应用程序编写一个搜索框,它会立即从服务器检索一整套搜索结果(人名和信息),然后翻阅结果列表.因此,在地图上的任何给定点处,存在两种标记 – 用于搜索结果中但不在当前页面中的点的背景标记,以及用于搜索结果的当前页面中的点的前景标记.

所有这一切都很好用..我现在要做的就是设置它,这样如果用户缩放或平移地图,搜索结果列表会更新以仅显示当前地图边界内的标记.

显然有服务器端方法可以做到这一点,或者我也可以通过整个标记列表来查看哪个适合当前范围;但有人知道在传单内做这个内置的方法吗?看起来像map.getVisibleLayers()的东西?

解决方法:

您必须检查每个图层的边界与地图的边界.因为eachLayer()返回所有图层,无论它们是否在可见范围内.

if(map.getBounds().contains(layer.getLatLng())) { ... }

在Stefano的代码中,这显示在这一行:

https://github.com/stefanocudini/leaflet-list-markers/blob/master/src/leaflet-list-markers.js#L95

上一篇:JavaScript-删除传单实时标记


下一篇:javascript – 地图中浏览器的最大svg元素数