根据业务需求,需要在对地图进行捏合(放大缩小)的过程中加载标注组,在地图比例尺较小的情况下显示较少标注组,比例尺较大的情况下显示更多标注组。
一开始以为百度地图有直接的sdk方法,查阅后发现并没有,官方只说对- (void)mapView:(BMKMapView *)mapView regionDidChangeAnimated:(BOOL)animated方法进行处理,然后结合下面的参考文章后,做了如下处理。
_currectzoomLevel全局变量,用来记录上一次获取的地图比例尺级别,同时第一次获取的地图比例尺尺寸就是地图初始化的时候设置的比例尺,,有了默认的标准比例尺尺寸,就可以进行比较,然后进行业务逻辑处理。
这里切记,最好不要在regionDidChangeAnimated里面进行数据请求,数据量过大会导致渲染卡顿。尽量在之前把数据请求下来,然后根据缩放比例尺来添加或删除标注组。
参考文章:https://www.jianshu.com/p/8fc7e7bd6363
这里推荐一个百度地图的点聚合功能,类似这种需求用点聚合功能。