点聚合
功能场景
通过该功能可以避免因Marker绘制过多呈现拥挤的情况,获得更优的展示效果,常用于充电桩、房产等app中。
Android
iOS
1590746640|
扫码体验
使用产品
产品1|/index.php?title=test
>
产品2|/index.php?title=test
下载源码
//mapopen-pub-androidsdk.cdn.bcebos.com/map/sample/BaiduLBS_AndroidSDK_Sample.zip
核心接口
类
接口
描述
ClusterManager
getMarkerCollection()
获取所有已添加的marker集合
ClusterManager
getClusterMarkerCollection()
获取聚合后的marker簇集合
ClusterManager
getMarkerManager()
获取MarkerManager
ClusterManager
setAlgorithm(Algorithm<T> algorithm)
设置marker聚合算法
ClusterManager
clearItems()
清空所有已经添加的聚合点
ClusterManager
addItems(Collection<T> items
添加一组聚合点
ClusterManager
addItem(T myItem)
添加单个聚合点
ClusterManager
cluster()
强制聚合
ClusterManager
setOnClusterClickListener(OnClusterClickListener<T> listener)
设置聚合簇点击回调
ClusterManager
setOnClusterInfoWindowClickListener(OnClusterInfoWindowClickListener<T> listener)
设置聚合infoWindow点击回调
ClusterManager
setOnClusterItemClickListener(OnClusterItemClickListener<T> listener)
设置单个聚合点点击回调
ClusterManager
setOnClusterItemInfoWindowClickListener(OnClusterItemInfoWindowClickListener<T> listener)
设置单个聚合InfoWindow点击回调
MyItem
getPosition()
获取聚合点位置
MyItem
getBitmapDescriptor()
获取聚合点图标
重点关注
主义在地图加载完成回调里添加聚合点:
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); } });
复制
深色
复制成功
核心代码
JAVA
/** * 向地图添加Marker点 */ public void addMarkers() { // 添加Marker点 LatLng llA = new LatLng(40.109965, 116.380244); LatLng llB = new LatLng(40.106965, 116.359199); LatLng llC = new LatLng(40.105965, 116.405541); LatLng llD = new LatLng(40.103175, 116.401394); LatLng llE = new LatLng(40.102821, 116.421394); LatLng llF = new LatLng(39.993175, 116.432394); LatLng llG = new LatLng(39.992821, 116.431394); LatLng llH = new LatLng(39.999723, 116.451394); LatLng llI = new LatLng(39.996965, 116.460244); LatLng llJ = new LatLng(39.999965, 116.489199); LatLng llK = new LatLng(39.999723, 116.315541); LatLng llL = new LatLng(39.996965, 116.291394); LatLng llM = new LatLng(40.010065, 116.351394); LatLng llN = new LatLng(40.016965, 116.331394); LatLng llO = new LatLng(40.015965, 116.361394); LatLng llP = new LatLng(40.017965, 116.291394); LatLng llQ = new LatLng(39.899723, 116.315541); LatLng llR = new LatLng(39.896965, 116.341394); LatLng llS = new LatLng(39.895065, 116.351394); LatLng llT = new LatLng(39.916965, 116.341394); LatLng llU = new LatLng(39.915965, 116.331394); LatLng llV = new LatLng(39.917965, 116.321394); LatLng llW = new LatLng(39.893175, 116.412394); LatLng llX = new LatLng(39.892821, 116.411394); LatLng llY = new LatLng(39.899723, 116.431394); LatLng llZ = new LatLng(39.896965, 116.440244); LatLng llA0 = new LatLng(39.899965, 116.469199); List<MyItem> items = new ArrayList<MyItem>(); }
复制
深色
复制成功
更多功能
点标记动画|/index.php?title=test
点融合|/index.php?title=test
添加文字和信息窗|/index.php?title=test