【发布时间】:2013-11-07 07:51:24
【问题描述】:
我想在带有 d3 的传单地图之上实现一个热图图层。我有大约 2-3k 个数据点。
我的数据格式如下:
[{lat: .., lon: .., value: ..}, {lat: .., lon: .., value: ..}, ...]
理想情况下,我想根据值和点的密度在热图之间切换。我还需要能够动态更新数据。从视觉上看,我的目标是这样的:
我知道leaflet 有一个couple of heatmap plugins,看起来都不是很活跃。 Heatmap.js 最接近我的需要。但是,它似乎没有维护,文档与源代码不一致,而且运行速度太慢。我已经广泛使用 d3,如果可能的话,我更愿意将它用于热图层。
有一个或两个街区漂浮在周围(例如,this one),但我没有找到一个有效的。 This comes closest 我需要的。它仍然适用于最新的传单版本,但理想情况下我想使用渐变(如 heatmap.js)而不是 hexbins。我还需要重写代码处理数据的方式并调整其他一些位(例如,它绘制密度,而不是值)。
理想情况下,我希望找到Mikes leaflet example 风格的解决方案。有什么建议吗?
更新:我也为 webgl-heatmap found this leaflet wrapper,但它似乎坏了
【问题讨论】:
-
你看过exampleLars Kotthoff的这个吗?
-
@user1614080 看了看,但没有看到任何相关内容(即,没有给定的特征数据,传单集成)?
-
我认为您可以在 Maya 站点气候示例中采用等高线技术,您也可以在 Mike Bostock 的 example 中看到。将 svg 容器绑定到传单地图也包含在您指出的示例中。
-
出于性能和简单性的原因,我建议对数据进行预处理并离线生成热图轮廓(例如作为 geojson)。除非你想对你的点进行分类,否则计算热图将是非常重要的。
-
感谢@LarsKotthoff,经过一番挖掘之后,看来这就是我必须要做的。只需要找到一个小库来生成轮廓。我确实让那个人发布了 laflet-webgl-heatmap 包装器,它确实工作得很好而且很快,但不是我想要的效果。 github.com/ursudio/webgl-heatmap-leaflet
标签: javascript svg d3.js geospatial leaflet