第34行: | 第34行: | ||
<div class="left-qrCode"> | <div class="left-qrCode"> | ||
<!-- 安卓二维码位置 --> | <!-- 安卓二维码位置 --> | ||
− | <div class="qrCode-and">1590746640|//mapopen-website-wiki.bj.bcebos.com/demos/ | + | <div class="qrCode-and">1590746640|//mapopen-website-wiki.bj.bcebos.com/demos/newqrcodes/点聚合.png</div> |
<div>扫码体验</div> | <div>扫码体验</div> | ||
</div> | </div> |
2020年6月8日 (一) 16:23的版本
点聚合
功能场景
通过该功能可以避免因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); }
复制
深色
复制成功