思路
1 监听地图的拖拽 和 缩放事件
2 根据地图的可视区域,显示在范围里面的锚点,
3 筛选出地图范围里面的点,将点更新到地图,
4 删除地图上存在范围外的点
监听地图事件
防止事件触发太多频繁,增加防抖
map.on("dragend", function (e:any) {
debounce(()=>{
renderPoint(list)
})()
})
map.on("zoom", function (e:any) {
debounce(()=>{
renderPoint(list)
})()
})
var timeout: any = null;
/**
* 防抖函数
* @param fn
* @param wait
*/
export function debounce(fn: any, wait:number = 500) {
return function() {
if(timeout !== null) {
clearTimeout(timeout);
}
timeout = setTimeout(fn, wait);
}
}
处理锚点
function renderPoint(list: SitePointType[]){