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

时间:2014-02-15 08:41:08

标签: leaflet markerclusterer

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

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

谢谢, 卢卡

2 个答案:

答案 0 :(得分:6)

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

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

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

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

希望它可能会有所帮助。

干杯, 卢卡

答案 1 :(得分:1)

在看到问题时尝试选项并进行优化,而不是提前优化。除非您的标记附加了大量数据,否则您可能只需使用Leaflet.markercluster即可。