问题描述
我有一张不同级别的地图。每个级别从 json 文件中获取信息并使用 layer.setIcon 方法生成图标。 通过拖动地图,图标在显示区域外消失。 为什么?
编辑: 好的,我想我在这里看到了问题: Leaflet.MarkerCluster.LayerSupport 没有这个扩展,渲染工作……为什么?
解决方法
这是 Leaflet.markercluster 插件的默认行为,尤其是在移动设备上可见。
更具体地说,它有一个默认启用的 removeOutsideVisibleBounds
选项:
removeOutsideVisibleBounds:为了提高性能,从地图中移除离视口太远的簇和标记。
在移动设备上,当前地图视口之外的任何内容都将被移除,并在平移停止时重新出现。但这意味着在平移期间,您可能会错过一些标记。
另见Leaflet MarkerCluster removeOutsideVisibleBounds not working
不幸的是,除了通过将选项传递给 false
来禁用它之外,没有可以自定义此行为的 API:
const mcg = L.markerClusterGroup({
removeOutsideVisibleBounds: false // Disable default behaviour
}).addTo(map);