浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。
 
第4行: 第4行:
 
<div class="bluetitle"><div class="services-title-text">绘制点聚合的方法</div></div>
 
<div class="bluetitle"><div class="services-title-text">绘制点聚合的方法</div></div>
 
'''{{bluepoint}}初始化点聚合管理类'''
 
'''{{bluepoint}}初始化点聚合管理类'''
<pre class="prettyprint codestyle">//声明点聚合管理类全局变量
+
<div class="code_template"><div class="code_control"><div class="code_btn opt">Objective-C</div><div class="code_btn">Swift</div></div><div class="code_container"><pre class="code_item active prettyprint codestyle">//声明点聚合管理类全局变量
 
@property (nonatomic, strong) BMKClusterManager *_clusterManager;
 
@property (nonatomic, strong) BMKClusterManager *_clusterManager;
  
 
//初始化点聚合管理类
 
//初始化点聚合管理类
_clusterManager = [[BMKClusterManager alloc] init];
+
_clusterManager = [[BMKClusterManager alloc] init];</pre>
</pre>
+
<pre class="code_item prettyprint codestyle">var clusterManager = BMKClusterManager()</pre>
 
+
</div></div>
 
'''{{bluepoint}}添加点数据'''
 
'''{{bluepoint}}添加点数据'''
<pre class="prettyprint codestyle">CLLocationCoordinate2D coor = CLLocationCoordinate2DMake(39.915, 116.404);
+
<div class="code_template"><div class="code_control"><div class="code_btn opt">Objective-C</div><div class="code_btn">Swift</div></div><div class="code_container"><pre class="code_item active prettyprint codestyle">CLLocationCoordinate2D coor = CLLocationCoordinate2DMake(39.915, 116.404);
 
     //向点聚合管理类中添加标注
 
     //向点聚合管理类中添加标注
 
     for (NSInteger i = 0; i < 20; i++) {
 
     for (NSInteger i = 0; i < 20; i++) {
第20行: 第20行:
 
         clusterItem.coor = CLLocationCoordinate2DMake(coor.latitude + lat, coor.longitude + lon);
 
         clusterItem.coor = CLLocationCoordinate2DMake(coor.latitude + lat, coor.longitude + lon);
 
         [_clusterManager addClusterItem:clusterItem];
 
         [_clusterManager addClusterItem:clusterItem];
     }
+
     }</pre>
</pre>
+
<pre class="code_item prettyprint codestyle">let coor = CLLocationCoordinate2D(latitude: 39.915, longitude: 116.404)
 
+
       
<span style="color:#FF0000;">点聚合源码</span>,请参考[http://lbsyun.baidu.com/index.php?title=iossdk/sdkiosdev-download demo]中的BMKClusterAnnotationPage
+
        for _ in 0..<20 {
 +
            let lat: Double = Double((arc4random()&nbsp;% 100)) * 0.001
 +
            let lon: Double = Double((arc4random()&nbsp;% 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)
 +
        }</pre>
 +
</div></div>
 +
<span style="color:#FF0000;">点聚合源码</span>,请参考[http://mapopen-portal-mis.cdn.bcebos.com/iOS/Sample/BaiduMap_IOSSDK_v4.2.1_Sample.zip demo]中的BMKClusterAnnotationPage;Swift源码参考BMKSwiftDemo中的BMKClusterAnnotationPage.swift
  
 
'''{{bluepoint}}点聚合效果'''
 
'''{{bluepoint}}点聚合效果'''

2020年3月26日 (四) 12:07的最后版本

点聚合简介

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

  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

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

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消