浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
更新时间:2020-06-23
点聚合简介

iOS地图SDK支持点聚合功能,可通过缩小地图层级,将定义范围内的多个标注点,聚合显示成一个标注点,解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能。

绘制点聚合的方法

初始化点聚合管理类

Objective-C
Swift
//声明点聚合管理类全局变量
@property (nonatomic, strong) BMKClusterManager *_clusterManager;

//初始化点聚合管理类
_clusterManager = [[BMKClusterManager alloc] init];
var clusterManager = BMKClusterManager()

添加点数据

Objective-C
Swift
CLLocationCoordinate2D coor = CLLocationCoordinate2DMake(39.915, 116.404);
    //向点聚合管理类中添加标注
    for (NSInteger i = 0; i < 20; i++) {
        double lat =  (arc4random() % 100) * 0.001f;
        double lon =  (arc4random() % 100) * 0.001f;
        BMKClusterItem *clusterItem = [[BMKClusterItem alloc] init];
        clusterItem.coor = CLLocationCoordinate2DMake(coor.latitude + lat, coor.longitude + lon);
        [_clusterManager addClusterItem:clusterItem];
    }
let coor = CLLocationCoordinate2D(latitude: 39.915, longitude: 116.404)
        
        for _ in 0..<20 {
            let lat: Double = Double((arc4random() % 100)) * 0.001
            let lon: Double = Double((arc4random() % 100)) * 0.001
            
            let coordinate = CLLocationCoordinate2D(latitude: coor.latitude + lat, longitude: coor.longitude + lon)
            let quadItem = BMKQuadItem()
            quadItem.coordinate = coordinate
            objc_sync_enter(quadtree)
            quadItems.append(quadItem)
            quadtree.addItem(quadItem: quadItem)
            objc_sync_exit(quadtree)
        }

点聚合源码,请参考demo中的BMKClusterAnnotationPage;Swift源码参考BMKSwiftDemo中的BMKClusterAnnotationPage.swift

点聚合效果

效果如下:

point001.png

point002.png

  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消