动态大数据场景下图标及中文标注显示问题

这个问题困扰我许久了,今日终于解决了,记录一下。

先描述一下业务场景:

数据量:百万级、千万级

场景范围和每个对象的坐标都不固定,会随时修改

包含中文,图标

数据无法按缩放层级分层

所以,很多方案都用不了

被排除的方案:

因为标注包含中文,所以,使用提前准备的文本材质和webGL渲染的方案基本上是不可行的

因为数据不稳定的,随时会变的,所以像地图的切片做法加位置查询也不可行

因为数据量巨大,所以直接用HTML DOM来渲染也不可行

解决办法:

1. 使用canvas2d绘制

2. 解决UI卡顿的问题

标注渲染不能导致UI操作卡顿。所以在缩放和平移需要重新渲染的情况下,将同步事件变成异步的,甚至可以加节流阀(效果并不理想)

其次,设置绘制标志,在每次重新绘制前检查,避免多次执行

3. 过滤掉不需要绘制的数据

通过范围检查,筛选掉不在可视区域范围内的数据,这样在放大的时候,可以大大减少需要绘制的数量

但是如果场景缩放所有数据都在可视区域内,范围检查不仅没有加速,反而增加了计算量

这个时候就还需要加上最大数量限制,在过滤之后的数据里按照计算出的步长获取最终需要绘制的数据

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容