浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

文档全面上新

更科技的视觉体验,更高效的页面结构,快前往体验吧!

体验新版
点聚合
功能场景
通过该功能可以避免因Marker绘制过多呈现拥挤的情况,获得更优的展示效果,常用于充电桩、房产等app中。
Android
iOS
//mapopen-website-wiki.bj.bcebos.com/demos/AndroidVideos/Android点聚合.mp4
1590746640|//mapopen-website-wiki.bj.bcebos.com/demos/newqrcodes/点聚合.png
扫码体验
使用产品
Android地图SDK|/index.php?title=androidsdk
>
点聚合|/index.php?title=androidsdk/guide/render-map/conflux
下载源码
//mapopen-website-wiki.bj.bcebos.com/demos/BaiduMapSDKExample.zip
核心接口
接口
描述
ClusterManager
addItems(Collection<T> items
添加一组聚合点
ClusterManager
addItem(T myItem)
添加单个聚合点
ClusterManager
removeItem(T item)
移除单个聚合点
ClusterManager
setOnClusterClickListener(OnClusterClickListener<T> listener)
设置聚合簇点击回调
ClusterManager
setOnClusterItemClickListener(OnClusterItemClickListener<T> listener)
设置单个聚合点点击回调
重点关注
注意在地图加载完成回调里添加聚合点
JAVA
mBaiduMap.setOnMapLoadedCallback(new BaiduMap.OnMapLoadedCallback() {
    @Override
    public void onMapLoaded() {

        // 添加marker
        initCluster();
        addMarkers();

        // 设置初始中心点为北京
        LatLng center = new LatLng(39.963175, 116.400244);

        // 需要更新下地图状态,聚合点才会显示出来
        MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newLatLngZoom(center, 10);
        mBaiduMap.setMapStatus(mapStatusUpdate);
    }
});
                
复制
深色
复制成功
核心代码
1.初始化
JAVA
private void initCluster() {
    // 定义点聚合管理类ClusterManager
    mClusterManager = new ClusterManager<MyItem>(this, mBaiduMap);
    mBaiduMap.setOnMapStatusChangeListener(mClusterManager);
    mBaiduMap.setOnMarkerClickListener(mClusterManager);

    mClusterManager
            .setOnClusterClickListener(new ClusterManager.OnClusterClickListener<MyItem>() {

                @Override
                public boolean onClusterClick(Cluster<MyItem> cluster) {
                    Toast.makeText(ClusterMarkerActivity.this, "有" + cluster.getSize() + "个点",
                            Toast.LENGTH_SHORT).show();
                    return false;
                }
            });
    mClusterManager.setOnClusterItemClickListener(
            new ClusterManager.OnClusterItemClickListener<MyItem>() {
                @Override
                public boolean onClusterItemClick(MyItem item) {
                    Toast.makeText(ClusterMarkerActivity.this, "点击单个Item", Toast.LENGTH_SHORT)
                            .show();
                    return false;
                }
            });
}
                
复制
深色
复制成功
2.添加item
JAVA
/**
* 向地图添加Marker点
*/
public void addMarkers() {
    // 添加Marker点

    List<MyItem> items = getMaytiems();

    mClusterManager.addItems(items);
}
                
复制
深色
复制成功
  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

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

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消