使用Leaflet处理数千个标记的最佳实践

Luc*_*chi 6 markerclusterer leaflet

我正在使用HTML地图与Leaflet一起进行一些测试.服务器端我有一个Ruby Sinatra应用程序,提供由MySQL表提取的json标记.使用2k-5k和可能更多标记的最佳实践是什么?

  • 首先加载所有标记,然后将所有标记委托给Leaflet.markercluster.
  • 每次地图视口更改时加载标记,将southWest和northEast点发送到服务器,详细说明剪切服务器端,然后将标记缓冲区客户端与服务器获取的条目同步(我现在正在做什么).
  • 上述两种方法的混合.

谢谢,卢卡

Luc*_*chi 6

自从我最初发布这个问题以来,几个月过去了,我完成了它!

正如@Brett DeWoody正确指出的那样,正确的方法是与屏幕上的DOM元素数量严格相关(我主要指的是标记).如果你的设备更快(特别是CPU),越多越好.由于我开发的应用程序将台式机和平板电脑都作为目标设备,因此CPU就像不同地理区域的标记密度一样是一个相关因素.

我决定将DBase查询/获取和地图表示/显示分开.基本上,用户调整控件/输入以过滤整个数据集,然后获取记录并且Leaflet.markercluster完成表示工作.修改过滤器后,循环重新开始.用户可以根据CPU功率选择群集的地图缩放级别.

在我的特定场景中,上面提到的是最好的方法(由console.time验证).我发现视口优化对于较低的标记密度区域是有益的(遗憾).

希望它可能会有所帮助.

干杯,卢卡