百度地图聚合点new BMapLib.MarkerClusterer()用法及map.clearOverlays()不能清除聚合点问题

时候是我们需要在地图上添加覆盖物,但如果数据太多可能出现这种情况

百度地图聚合点new BMapLib.MarkerClusterer()用法及map.clearOverlays()不能清除聚合点问题_第1张图片

这种看起来总觉得不舒服(密集恐惧症)

所以可以换成用聚合点

百度地图聚合点new BMapLib.MarkerClusterer()用法及map.clearOverlays()不能清除聚合点问题_第2张图片

一下子清爽了很多,聚合点放大后还是可以显示普通点。

用法代码



	
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	
	
		

总之就是初始化 var markerClusterer=new BMapLib.MarkerClusterer(map, {markers:markers});

每次获取数据后清空markers数组再添加新数据,可以先清空原覆盖物 markerClusterer.clearMarkers(markers),

或者markerClusterer.clearMarkers(),markers不需要写,因为初始化时就已经绑定数组了; 

添加聚合点覆盖物  markerClusterer.addMarkers(markers)

就是这么简单。

注意:

清空覆盖物不能单纯使用  map.clearOverlays(),这样只能清除普通的点。而对于聚合点而言,只是暂时消失,鼠标一拖动或者放大缩小就又出现了。

要用 markerClusterer.clearMarkers()  的方法才能真正清除

注意var markerClusterer=new BMapLib.MarkerClusterer(map, {markers:markers}) 只需要在全局中初始化一次

以后每次改变聚合点图时只需要改变数组,清除聚合点,再重新画点就可以 markerClusterer.addMarkers(markers)

 

 

 

 

 

 

 

你可能感兴趣的:(前端)