对于基于Web的地理数据可视化,哪种技术更可靠?

时间:2015-03-30 13:24:36

标签: openlayers gis leaflet

我有一个包含运输轨道数据的PostGIS数据库。它包含大约100万点。每个2D点也分配了时间戳。

我需要在Web地图可视化工具(如OpenLayers或Leaflet)中绘制这些图,以便用户能够对运输轨道数据执行过滤和分析。这意味着我添加了一个时间滑块,如this,热图像this,自定义轨道选择来创建图形(例如速度与时间等),加载/导出cvs / sph数据等。< / p>

我在OpenLayers方面没有什么经验,而在Leaflet中没有经验,尽管我很想尝试新事物。我只是稍微担心Leaflet如何处理大量数据(如果地图中的100万个点被认为是“大”),并且还关注地理数据分析的可靠性,因为它仍然是一个正在开发的工具,我将来可能想要的一些东西可能还没有。 OpenLayers已经存在了更长时间,可能更容易找到帮助和更多示例。

那么对我的案例,OpenLayers或Leaflet最值得推荐的是什么?

1 个答案:

答案 0 :(得分:2)

可能这不是一个完整的答案,但我可以根据我的经验分享一些你的事实;我使用this blog post中显示的Leaflet和KeyLines构建了一个地理数据可视化 演示链接没有庞大的数据集 - 目标是解释如何做,而不是炫耀 - 它持有15k点和20k时间事件。 我有相同的演示,有一百万个数据点和一些更多的事件,它和我们用它进行测试一样非常好。

您在底部看到的时间栏是我们处理数百万个时间事件的专有组件。

关于地图和热图,这是我的经验:

  • 宣传单很容易使用,在几个小时内你就可以准备好了。它的一个主要观点是被广泛使用,并提供插件生态系统。
  • 使用了Google Maps JS API,虽然它非常坚固,但对许可证的要求更高一些。
  • 这里的热图是我经验的瓶颈。
    • 没有Esri热图插件。
    • 没有OpenLayers经验。

我正在寻找的是一个热图组件,它能够同时添加和删除多个点:正如您在播放时间栏时从动画中看到的那样,热图会经常更新。
此外,在我们的情况下,它必须处理数据的放大/缩小,因此,任何类型的时间栏交互。

我尝试了什么:

  • Leaflet.heat - 它是演示中显示的那个,非常好。 API它仍然有点粗糙,并没有添加点数组的概念。如果您必须支持旧浏览器,这将无效(它基于HTML5 Canvas)。
  • heatmap.js - 虽然API看起来比上面的要好得多,但我觉得它有点慢(至少从我的测试中来看)。它也基于画布。
  • Google Heatmap Layer - 这是迄今为止我发现的最快的解决方案。 API有点冗长,但这是Google Visualization API风格。 这也可以在较旧的浏览器中使用

我没有尝试过您已经链接的ESRI(建立在Leaflet.heat之上),但也许值得探讨:他们可能已经调整它以使其更快。 在所有这些中,我没有看到OpenLayers 3的经验也包括热图图层,所以我无法帮助。

在这样的演示中,我们没有使用任何数据库,但我想如果没有正确调整,也可能成为瓶颈。我不禁在这方面想到了。