MarkerCluster
百度地图10W数量级的打点聚合,解决官方聚合的性能问题。正在测试优化中,可以在dev分支中尝试效果。
对百度官方聚合优化的点
我想这部分应该才是大家更关心的点,因此在此分享下优化的经验。
1、聚合计算完成后,再进行dom操作
百度原生聚合是计算一次,进行一个dom操作,然后进行下一次计算。不得不吐槽百度地图js是实习生还是后端人员写的,还看过其他开源库也有类似的问题。
2、不使用Map.getDistence()来计算两点距离,而是使用平面坐标系(墨卡托坐标系)计算两点距离
在聚合算法中,需要频繁使用getDistence()来判断最近的聚合点,此方法性能损耗很大,10w个点聚合计算,需要3s以上的时间。而预先转换为平面坐标系(墨卡托坐标)后,可以使时间减少至360ms(一般200多ms)左右.
3、使用webAssembly
使用webAssembly可以提高