海量大数据地图可视化

在浏览器中基于地图构建应用已经是很广泛的业务需求,随着大数据在地图可视化中的出现,我们遇到了不小的挑战。用户会拿出十万甚至百万数量级的数据,正如您所想象的,在显示此数量的地理编码信息方面存在着一些技术上的难题。一个难题是确保数据以一种有意义且对最终用户可操作的方式准确地呈现;另一个是因为信息的数量使得它在浏览器上产生了巨大负载,需要花长时间才可以看到的结果。

为了寻找最佳解决方案,我们测试了各种开源地图渲染组件,通过加载大数据集将它们的相对性能呈现出来。对于这些测试,,我们不使用服务器端分页和前端聚合的手段,就是为了找出最佳的组件组合。

我们准备了20万个纬度/经度点的数据集。分别使用了百度地图的BMap.PointCollection组件、Openlayers的ol.source.Vector组件,但效果不是很理想,操作画面有明显的卡顿,很明显浏览器承受力已经到了极限。我们把目光转向了同样是开源的地图组件Leaflet,近些年它在大数据展现方面可是名声大作,也感谢必应搜索,让我很快找到了关于它在大数据处理方面的技术博客。

Leaflet是用于适用于移动端交互地图的主要的开源JavaScript库。JS库的大小为38k左右,但是拥有大部分开发者需要的全部地图功能。Leaflet保持着简单、性能和实用性的设计思想,可以在所有主要的桌面和移动端平台上高效的运转。

Leaflet.CanvasLayer。Leaflet提供CanvasLayer(全屏幕画布覆盖)类,它调用定制的用户函数进行绘图,在这个函数中,我们可以使用canvas绘制自定义图形。我们使用这个方案测试了20万条的数据,渲染的时间约为1293毫秒,操作画面流畅度较以前有了很大的提升。它的原理是使用了canvas来绘制地图元素,画布的内存使用率低于 SVG, 因为它没有将每个点插入到 DOM 中。但是,该方案只支持地图元素的快速渲染,不支持在每个地图元素上设置事件处理程序,使得在交互扩展受到了很大的限制。

图:使用Leaflet.CanvasLayer渲染效果图

Leaflet与D3。为了支持在每个地图元素上设置事件处理程序,我们最后选择了Leaflet与D3结合的方案,向Leaflet的overlay图层添加SVG元素,利用D3的data方法为每条数据创建path元素,将数据转换成SVG的坐标并绘制成图形,在图形上绑定事件处理程序,最后当地图漫游时,Leaflet自动重新定位overlay框。

使用这个方案,数据在渲染上加快了一些速度,使得整体上获得更好的交互体验。事实上D3并没有绘制所有的点,它使用了D3中的输入、更新、退出模式,来动态更新地图上的点,在地图进行缩放、漫游操作后,根据地图的可视范围重新检索数据,过滤掉不能有效渲染的点,从而减少SVG中的点数,最终的结果就是,数据渲染的更快了。

图:使用Leaflet与D3渲染效果图

在做大数据地图可视化时,基于浏览器客户端进行渲染优化的手段并不多。使用聚合手段,通过缩减显示点的数量可以提高渲染效率,但遗憾的是,它在视觉上减少了实际位置和密度的感观,导致分析结果打了个不小的折扣。我们的结论是,Leaflet与D3结合的方式,不仅比其他选项更快、更灵活,而且它允许对单个数据点进行绑定和操作,真正实现地图的可视化与交互,地图元素的分布更实际,数据的分析结果也更准确。

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
大数据大屏可视化项目是指利用大数据技术和可视化技术,将海量数据以直观、易懂的方式展示在大屏上,帮助用户更好地理解和分析数据。这种项目通常用于数据分析、决策支持、监控和预警等领域。 一个典型的大数据大屏可视化项目包括以下几个步骤: 1. 数据采集:从各种数据源(如数据库、文件、API等)中采集数据,并进行清洗和预处理,以便后续的可视化展示。 2. 数据存储:将采集到的数据存储到适当的数据存储介质中,如关系型数据库、NoSQL数据库、数据仓库等。 3. 数据处理:对存储的数据进行处理和计算,以生成可供可视化展示的数据。 4. 可视化设计:根据项目需求和用户需求,设计大屏的布局、样式和交互方式。可以使用HTML、CSS和JS等前端技术来实现可视化效果。 5. 数据展示:将处理好的数据通过可视化组件(如图表、地图、仪表盘等)展示在大屏上,以便用户直观地观察和分析数据。 6. 数据更新:根据实际需求,定期或实时地更新数据,以保持大屏上展示的数据的准确性和实时性。 7. 用户交互:为用户提供交互功能,如筛选、排序、放大缩小等,以便用户根据自己的需求进行数据的探索和分析。 8. 故障监控:监控大屏系统的运行状态,及时发现和处理故障,确保大屏的稳定运行。 一个示例的大数据大屏可视化项目是使用datart平台进行数据可视化。datart是一款开放平台,支持各类企业数据可视化场景需求,如创建和使用报表、仪表板和大屏,进行可视化数据分析,构建可视化数据应用等。它提供了丰富的可视化组件和交互功能,可以帮助用户快速搭建和展示大数据大屏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值