首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标记聚类默认聚类出现

标记聚类默认聚类出现
EN

Stack Overflow用户
提问于 2021-08-21 00:38:48
回答 1查看 23关注 0票数 0

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

我的CustomMarker类如下所示

代码语言:javascript
复制
    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;
    }
}

在我设置标记的函数中,我设置了以下内容

感谢您的任何帮助!

EN

回答 1

Stack Overflow用户

发布于 2021-08-21 12:23:02

出现默认集群是因为我没有覆盖

代码语言:javascript
复制
 protected void onClusterUpdated(@NonNull Cluster<MapMarker> cluster, @NonNull com.google.android.gms.maps.model.Marker marker)

此方法应与您的onBeforeClusterRendered相同

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68869286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档