因此,基本上我希望像文档中所示的那样对自定义标记进行聚类。只是没有图片,https://developers.google.com/maps/documentation/android-sdk/utility/marker-clustering#maps_android_utils_clustering_info_window-java。我很难理解为什么缩放地图时会出现默认标记


我的CustomMarker类如下所示
public class CustomMarker extends DefaultClusterRenderer<MapMarker> {
private final IconGenerator iconGenerator;
private final IconGenerator clusterIconGenerator;
private final ImageView imageView;
private final int markerWidth;
private final int markerHeight;
public CustomMarker(Context context,
GoogleMap map,
ClusterManager<MapMarker> clusterManager) {
super(context, map, clusterManager);
int padding = 0;
markerWidth = 200;
markerHeight = 200;
clusterIconGenerator = new IconGenerator(getActivity());
imageView = new ImageView(getActivity());
imageView.setLayoutParams(new ViewGroup.LayoutParams(markerWidth, markerHeight));
imageView.setPadding(padding, padding, padding, padding);
iconGenerator = new IconGenerator(getActivity());
iconGenerator.setContentView(imageView);
}
@Override
protected void onBeforeClusterItemRendered(@NonNull MapMarker item, @NonNull MarkerOptions markerOptions) {
imageView.setImageURI(Uri.parse(item.getPicture()));
Bitmap icon = iconGenerator.makeIcon();
markerOptions.icon(BitmapDescriptorFactory.fromBitmap(icon)).title(item.getTitle());
super.onBeforeClusterItemRendered(item, markerOptions);
}
@Override
protected void onBeforeClusterRendered(Cluster<MapMarker> cluster, MarkerOptions markerOptions) {
markerOptions.visible(false);
Bitmap icon = clusterIconGenerator.makeIcon(String.valueOf(cluster.getSize()));
markerOptions.icon(BitmapDescriptorFactory.fromBitmap(icon));
markerOptions.visible(true);
}
@Override
protected boolean shouldRenderAsCluster(Cluster cluster) {
return cluster.getSize() > 2;
}
}在我设置标记的函数中,我设置了以下内容

感谢您的任何帮助!
发布于 2021-08-21 12:23:02
出现默认集群是因为我没有覆盖
protected void onClusterUpdated(@NonNull Cluster<MapMarker> cluster, @NonNull com.google.android.gms.maps.model.Marker marker)此方法应与您的onBeforeClusterRendered相同
https://stackoverflow.com/questions/68869286
复制相似问题