叶片/小叶图中的6百万标记

时间:2018-06-23 05:18:04

标签: python leaflet folium

使用MarkerCluster算法,可以将附近的标记聚在一起,因此在视觉上可以接受地图。

但是,我发现传单图的性能和响应会随着其中的标记数量而降低。

我仍然不了解它,但是我发现人们谈论的是服务器端集群解决方案,而不是客户端集群。

This durable module project是使用在传单地图中使用此概念(服务器端聚类)的大量标记的解决方案。

我的问题是:

如何在传单地图中完成?
如何在folium地图上的python中实现此解决方案?

2 个答案:

答案 0 :(得分:1)

服务器端群集可以通过XHR请求完成。

最简单的方法是将地图划分为正方形,并使其在单功能图层之间切换,并使用MAP.on('zoomend', function(e){});事件替换geoJSON / JSON图层。

在一个示例中,如果有jQuery,则可以在zoomend上执行$.getJSON(SERVER_SIDE_URL, {VARIABLE: 'VALUE'}, function(data){});。在这里,匿名函数将携带响应数据。您可以使用此数据创建替代LayerGroup或单个Layer,同时跟踪并破坏其谓词。

服务器端将需要访问完整的数据集,并且能够为单个特征提供JSON,以抽象附近的特征,或者为占位符的半径/平方半径内的一组特征提供

那是一个选项的摘要。替代地,可能有市场就绪的解决方案。但是编写自己的脚本应该可以为这种简单的任务提供更有效的解决方案。

答案 1 :(得分:0)

我找到了传单 Mapbox 的开源解决方案。

它是传单所有者创建的SuperCluster project。 这是带有node.js的服务器端Clustring 解决方案和带有MapBox的客户端Clustring

here

解释了这些算法的概念