【问题标题】:Best practices for handling thousands of markers with Leaflet使用 Leaflet 处理数千个标记的最佳实践
【发布时间】:2014-02-15 08:41:07
【问题描述】:

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

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

谢谢, 卢卡

【问题讨论】:

    标签: leaflet markerclusterer


    【解决方案1】:

    自从我最初发布问题并成功通过以来已经过去了几个月!

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

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

    在我的特定场景中,上面提到的代表了最好的方法(由 console.time 验证)。我发现视口优化适用于标记密度较低的区域(可惜)。

    希望对您有所帮助。

    干杯, 卢卡

    【讨论】:

    • 天哪!你救了我的一天!我新的这个插件存在,但看到工作真的很棒:D
    【解决方案2】:

    在发现问题时尝试选项并进行优化,而不是尽早优化。除非您的标记附有大量数据,否则您可能只使用 Leaflet.markercluster 就可以逃脱。

    【讨论】:

    • 我认为这个问题还有一个用户体验元素。标记是随机分布还是聚集在一起,用户喜欢什么缩放级别?这些也可能成为最终选择的因素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 2016-10-23
    相关资源
    最近更新 更多