美文网首页
IOS百度地图点聚合标注tag值的问题

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

作者: 小白奔哥 | 来源:发表于2020-07-28 11:28 被阅读0次

    百度地图相关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 <BMKAnnotation>)annotation {

                ClusterAnnotation*cluster = (ClusterAnnotation*)annotation;

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

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

    }

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/dfffrktx.html