Leaflet 在JS中绘制140K点

Leaflet 在JS中绘制140K点,leaflet,leaflet.markercluster,Leaflet,Leaflet.markercluster,我是新手。我们在cesiumjs上工作了一段时间,现在我们正在尝试传单。切换的主要原因是看是否存在巨大的性能差异 在铯原子中,我绘制了一组原始点。用JS绘制140K点的最有效方法是什么?使用标记或创建单个小圆圈 我也在考虑使用集群插件(),因此请分享关于性能的任何想法。您有两个常见选项: 在基于画布的层中显示点,例如使用圆标记和强制而不是SVG(另请参见)。即使在画布上,圆圈标记仍会发出事件,因此您可以检测“单击”等 用一个,比如你提到的。它可以处理您的140k点数,这取决于客户端的计算机性能

我是新手。我们在cesiumjs上工作了一段时间,现在我们正在尝试传单。切换的主要原因是看是否存在巨大的性能差异

在铯原子中,我绘制了一组原始点。用JS绘制140K点的最有效方法是什么?使用标记或创建单个小圆圈


我也在考虑使用集群插件(),因此请分享关于性能的任何想法。

您有两个常见选项:

  • 在基于画布的层中显示点,例如使用圆标记和强制而不是SVG(另请参见)。即使在画布上,圆圈标记仍会发出事件,因此您可以检测
    “单击”

  • 用一个,比如你提到的。它可以处理您的140k点数,这取决于客户端的计算机性能(请参阅和演示50k点数,但请注意,演示使用的是旧版本的插件,而当前版本的速度更快)


尝试在没有画布或群集的情况下显示140k点肯定会使浏览器崩溃。

如果要渲染超过100k的标记,可以使用库,因为加载>100k的标记可能需要30秒以上的时间


我创建了一个github来比较初始加载的传单。markercluster和Supercluster。

谢谢……我必须研究聚类。我想知道是否可以基于属性进行集群。因此,在我们的案例中,140K点可能由1/12个不同物种组成。我希望集群是按物种划分的。我还没有深入研究聚类代码,但如果这显然不可能,请告诉我。Well,这完全取决于你所说的“按物种聚类”的意思……显然,你可以创建尽可能多的聚类组,但不同物种的聚类可能会重叠。如果您需要进一步帮助,请随时提出新问题。如果您想找到此答案中给出的第一个选项的替代方案,请尝试以下方法:使用140K点时不起作用,但使用约20K点则可以,这将使使用常规标记的浏览器死机。这一替代方案使用循环标记。MCG的数据与回购协议上的演示相差甚远。如果看不到所使用的代码,我们只能假设它的设置不正确。另请参见中的度量。研究论文中的代码确实没有提供,但我们不能假设任何东西,因为回购协议上的演示和您链接的度量只有50k标记。很快,我将获得100k、200k和500k标记的数据。我将把我的结果发布在这个帖子里。我的意思是,你展示的表中50k的测量值与你在50k演示中已经体验到的相去甚远。如果有这么大的差距,那么测试是如何设置的就值得怀疑了。@ghybs你是对的,他们需要做一些错误的事情,因为我尝试了它,并且传单。markercluster能够呈现>100k的标记。但是,传单.markercluster的初始加载速度太慢。我编辑了我的答案并创建了一个github,您可以使用它在本地比较这两个库的性能。