googlemaps / googlemaps/android-maps-compose
Cluster Item Update removes marker (Disappears)
- Vorherrschende Sprache
- Kotlin
- Sterne
- 1.3k
- Forks
- 181
- Ø Merge
- 2 T. 23 Std.
- Gemergte PRs (30 T.)
- 18
Beschreibung
Hey,
I'm using Google Maps Compose along with Custom Cluster to render items on map, also I've the below property set to false
`override fun shouldRenderAsCluster(cluster: Cluster) = false`
On updating item from clustered/rendered items on the map, the desired updated marker disappears sometimes.
#### Environment details
1. `'com.google.maps.android:maps-compose:4.4.2'` and `'com.google.maps.android:maps-compose-utils:4.4.2'`
2. Android 12 (API 31) Physical Device for testing and Windows 10 Desktop
#### Steps to reproduce
1. Add some markers as cluster items in the map
2. Update marker(s) in the map (frequently)
3. The marker disappears unexpectedly
#### Code example
```kotlin
// COMPOSE VIEW
val itemToUpdate = clusterManager?.algorithm?.items?.find { it.getStation().id == 129 }
itemToUpdate?.station?.let { item ->
item.status = if (showFilterBottomSheet.value) "AVAILABLE" else "PLANNED"
}
itemToUpdate?.let {
val isUpdatedSuccess = clusterManager?.updateItem(it)
}
clusterManager?.cluster()
```
```kotlin
// CustomClusterRender
override fun onClusterItemUpdated(item: T, marker: Marker) {
super.onClusterItemUpdated(item, marker)
Timber.d("onClusterItemUpdated: ${item.title}")
marker.setIcon(
// Some internal logic to set marker color, also used in "onBeforeClusterItemRendered"
// FYI: setIcon internal logic doesn't have any issue.
)
}
```
Video Example:
NOTE: The marker disappears at `00:11` and I'm using the Filter Icon on the top right to trigger the update manually.
https://github.com/googlemaps/android-maps-compose/assets/62587060/76b5e753-d96a-4f37-ba71-8c5aa1deead0
Thanks!
Beitragsleitfaden
Rechercherichtung
Beginne mit dem benutzerdefinierten Cluster-Ablauf rund um shouldRenderAsCluster, updateItem, cluster() und CustomClusterRender.onClusterItemUpdated. Reproduziere die häufige Marker-Aktualisierung anhand der bereitgestellten Schritte und des Videos und verfolge dann, ob das aktualisierte Cluster-Element entfernt oder nicht gerendert wird. Die Aufgabe ist abgeschlossen, wenn wiederholte Aktualisierungen den Marker nicht mehr verschwinden lassen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- kotlin
- Bereich
- mobile-dev
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 48/100