diff --git a/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java b/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java index 08ab0e081..679ec7123 100644 --- a/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java +++ b/library/src/main/java/com/google/maps/android/clustering/view/DefaultClusterRenderer.java @@ -59,6 +59,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -836,6 +837,9 @@ protected void onBeforeClusterItemRendered(@NonNull T item, @NonNull MarkerOptio } else if (item.getSnippet() != null) { markerOptions.title(item.getSnippet()); } + if (item.getZIndex() != null) { + markerOptions.zIndex(item.getZIndex()); + } } /** @@ -906,6 +910,13 @@ protected void onClusterItemUpdated(@NonNull T item, @NonNull Marker marker) { protected void onBeforeClusterRendered(@NonNull Cluster cluster, @NonNull MarkerOptions markerOptions) { // TODO: consider adding anchor(.5, .5) (Individual markers will overlap more often) markerOptions.icon(getDescriptorForCluster(cluster)); + ArrayList items = new ArrayList<>(cluster.getItems()); + if (!items.isEmpty()) { + Float zIndex = items.get(0).getZIndex(); + if (zIndex != null) { + markerOptions.zIndex(zIndex); + } + } } /**