百度地图添加大量标记点卡顿解决思路
需求
即能加载多个点,又能加载海量点,又能经常切换mark点,在尝试了多种方式之后,用下面的方式满足了条件
思路 :通过setTimeout 实现步加载
let max = 500 // 设置一次性加载的最大值。
for (let i = 0; i < Math.ceil(len / max); i++) {
setTimeout(() => {
this.addMarkers(i * max, (i + 1) * max, list)
}, i * 10 * 50)
}
这样既完美满足了使用场景,点数太过多的时候,会有一点慢,建议使用其他方式
7月更新
数据越来越多了,现在线上超过6000点,上面的方式不够用了,特地来更新一下
需求变了 当时产品保证不超过5000点
点太多了,使用百度提供的聚合点吧,完美兼容自定义信息窗体,点击事件等需求。
https://lbsyun.baidu.com/jsdemo3.0.htm#js3_11
目前的缺点是,不能使用GL1.0API,只能在2dAPI3.0下使用 改造也比较简单。2w点不卡。