googlemaps / android-maps-utils

Maps SDK for Android Utility Library
https://developers.google.com/maps/documentation/android-sdk/utility
Apache License 2.0
3.54k stars 1.53k forks source link

SetInfoWindowAdapter with multiple clusterManager #1365

Open MrJJOn opened 2 months ago

MrJJOn commented 2 months ago

Hello, thanks for your incredible work. I am using the clustering markers but I'm encountering unexpected behavior. This is the code:

ArrayList<ClusterManager<ClusterMarkerMeter>> clusterManagers = new ArrayList<>();
for (int i = 0; i < routes.size(); i++) {
    Route route = routes.get(i);
    ClusterManager<ClusterMarkerMeter> clusterManager = new ClusterManager<>(ctx, map);
    clusterManager.setRenderer(new MarkerMeterIconRender(ctx, map, clusterManager, customColors[i % customColors.length]));
    clusterManagers.add(clusterManager);

    for (Reading reading : route.readings) {
        ClusterMarkerMeter item = routes.size() == 1 ? getMarkerColorByStatus(reading) : getClusterMarker(reading, i);
        clusterManager.addItem(item);
    }
    clusterManager.getMarkerCollection().setInfoWindowAdapter(new InfoWindowAdapter(ctx));
    clusterManager.cluster();
}

The setInfoWindowAdapter function works only on the latest clusterManager and not for the previous one. How can i fix this?