地图大量数据查询与渲染——bug及解决方案

本文详述了在大数据可视化项目中遇到的arcgis server查询上限和前端渲染压力问题,以及对应的解决方案。通过分批查询、requestAnimationFrame动画渲染、GraphicsLayer缓存策略改善用户体验,并探讨了事件循环在解决渲染延迟问题中的应用。
摘要由CSDN通过智能技术生成

本文记录大数据可视化项目中信息查询过程遇到的实际问题及解决方案,用到了Vue自定义组件、Promise.all、DocumentFragment、event loop等。

项目需求

项目使用的arcgis地图服务中主要地图要素为图斑即面状要素,需要根据图斑属性对图斑进行查询,获得符合要求的图斑并高亮显示

问题及解决方案总结

问题1

属性查询多条件组合问题:简单易懂的多条件的输入

解决方案:自定义条件输入组件,分为图斑属性条件和所在区域条件,在此篇中不详细展开。

问题2

arcgis server查询数量上限问题:arcgis server限制查询地图服务获得数量的上限,项目中设置上限为2000,查询得到的结果不完整。

解决方案:采用objectID对要素进行分批查询,使用Promise.all处理多个查询。

问题3

数据渲染问题:仅一个区县的图斑数量达到近2w,前端渲染压力大,造成卡崩,chrome浏览器报错paused before potential out-of-memory crash。

解决方案:①首先使用requestAnimationFrame进行渲染,每次渲染50个,仍报错;②先将数据添加渲染到一个新建graphicLayer变量中,渲染完成后添加到map对象中,可行。(类似于documentFragment)

问题4

用户体验问题:渲染图层添加到map对象中需要一定时间(数据量为2w时超过10s),用户体验不佳。

解决方案:添加图层时地图上覆盖loading状态,图层添加完成后取消loading。①arcgis ap

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值