前言
OpenLayers这个库在前端操作地图自然是数一数二的存在,但是对于在地图上海量数据的绘制就显得有点力不从心,虽然目前Openlayers4以后地图上数据的绘制相关绘制接口已经开始基于WebGL进行封装,一定程度上决解决了数据绘制速度问题但对于海量数据绘制到客户端所带来的内存占用问题并没有得到解决,这其实也怪不得OL的开发者,人家本来就不是为了数据可视化打造的,之所以开始采用WebGL进行绘图API的封装也仅仅是为了给地图相关应用的开发起到锦上添花的作用,这时deck.gl Echarts等便可提枪上马了,目前对于前端点绘制优化相关的例子都是针对矢量地图进行的,这里采用栅格瓦片作为底图实现对于10W级别点的前端绘制
方法比较
OpenLayers4结合setInterval函数实现简单的地图动画----以溢油粒子的漂移扩散为例
这个小功能实现之后甲方提出了新要求,目前在OpenLayers加载的栅格瓦片上绘制的最大点数为72000个,在拖动时发现出现卡顿,并且又提出最终需要在地图上展示30多万个点(这尼玛这么密的点不做聚类全部展示出来有意义吗)没有办法,甲方这样要求老师说让这样整,那我就照做,初步想法有下面几种
1 Openlayers cluster实现聚类(或者有其它相关包实现聚类)
2 使用imagecanvas将绘制的点作为图片加载地图上
3 利用第三方专门做可视化的库与OpenLayers结合
1 2 都被老师华丽的否决了,那就沿着第三条路走到黑了
方法2的实现过程
其实解决前端地图拖动过程