2014-02-15 29 views
5

我正在做一些测试,使用HTML地图以及Leaflet。服务器端我有一个Ruby Sinatra应用程序提供由MySQL表提取的json标记。使用2k-5k和潜在更多标记的最佳实践是什么?使用单张处理数千个标记的最佳做法

  • 首先加载所有标记,然后将所有内容委托给Leaflet.markercluster
  • 每当地图视口发生变化时加载标记,发送southWestnorthEast指向服务器,精心修剪服务器端,然后将标记缓冲客户端与服务器获取的条目同步(我现在正在执行的操作) 。
  • 上述两种方法的组合。

感谢, 卢卡

回答

5

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

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

我决定分开DBase查询/提取和地图表示/显示。基本上,用户调整控件/输入以过滤整个数据集,然后提取记录并且执行表示的工作。当过滤器被修改时,周期重新开始。用户可以根据CPU功率选择集群化的地图缩放级别。

在我特殊的情况下,上述代表最好的方法(由console.time验证)。我发现视口优化对于较低的标记密度区域是有利的(可惜)。

希望它有帮助。

干杯, 卢卡

+0

哦,我的!你救了我的一天!我新增了这个插件,但看到工作真的很棒:D –

1

尝试选项,当你看到问题,而不是提前优化优化。除非您的标记有大量的数据附加到它们,否则您可能只能使用Leaflet.markercluster。

+1

我觉得也有一个UX元素这个问题。标记是随机分布还是聚集在一起,以及用户喜欢什么缩放级别?这些也可能影响最终选择。 –