IOS百度地图点聚合标注tag值的问题

百度地图相关Demo:http://mapopen-portal-mis.cdn.bcebos.com/iOS/Sample/BaiduMap_IOSSDK_v4.2.1_Sample.zip.demo里面还是比较全的。

首先按照demo集成点集合功能,主要就是这个目录导入项目:

01

这里提醒一下,百度地图sdk里面是没得这些功能的,只有按照demo导入文件目录到自己的项目,估计是官方不想把sdk搞那么大。


定位代码、地图代码、点聚合代码这里我就不贴了,太长了,,主要是说一下每个点的tag值问题,,

由于点聚合功能的点模型数据,官方是放在BMKClusterManager类的初始化里面,并没有开放出来,所以读者需要把所有点的模型数据在进入地图页面前存在本地,进入地图页面后在BMKClusterManager里面取数据.

1.在for循环的里面进行tag赋值

            BMKQuadItem*quadItem = [[BMKQuadItemalloc]init];

            quadItem.tag        = model.Id;

            quadItem.coordinate= coordinate;

2.在BMKClusterManager里面的- (NSArray*)getClusters:(CGFloat) zoomLevel这个方法添加下图红色框tag

02

这里涉及到两个类需要增加tag属性,如图03/04


03


04

3.回到地图页面,在ClusterAnnotation里新增tag属性


05

4.在updateClusters方法里面赋值tag


06

5.最后在viewForAnnotation代理方法里面获取tag

- (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id )annotation {

            ClusterAnnotation*cluster = (ClusterAnnotation*)annotation;

        DLog(@"----当前cluster的tag值为:%ld---",(long)cluster.tag);

        BMKPinAnnotationView *annotationView = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotationViewIdentifier];

}


最后,不管是这里的点聚合,还是普通的标注都是自己写一个类然后继承BMKPointAnnotation这个类,去设置tag。

你可能感兴趣的:(IOS百度地图点聚合标注tag值的问题)