Код: Выделить всё
private fun setMarkerIcon(item: ClusterData) {
val icon = markerIconGenerator.makeIcon()
val bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(icon)
clusterRenderer?.getMarker(item)?.setIcon(bitmapDescriptor) //getting null here
}
Код: Выделить всё
clusterManager.clusterMarkerCollection.markers.find { it.snippet == item.snippet }
?.let { marker ->
////
} ?: run { ////getting here }
clusterManager.clusterMarkerCollection?.markers?.find { it.snippet == item.snippet }?.let {
////
} ?: run { ////getting here }
Код: Выделить всё
class AppClusterRenderer(
private val context: Context,
map: GoogleMap,
clusterManager: ClusterManager) :
DefaultClusterRenderer(context, map, clusterManager) {
private val clusterIconGenerator = IconGenerator(context)
private val markerIconGenerator = IconGenerator(context)
init {
clusterIconGenerator.setContentView(clusterBinder.root)
clusterIconGenerator.setBackground(null)
markerIconGenerator.setContentView(markerBinder.root)
markerIconGenerator.setBackground(null)
}
override fun onBeforeClusterItemRendered(item: ClusterData, markerOptions: MarkerOptions) {
markerOptions.icon(getMarkerItemView(item))
//getMarkerItemView set needed data and return bitmap
}
private fun getMarkerItemView(item: ClusterData): BitmapDescriptor {
val icon = markerIconGenerator.makeIcon()
return BitmapDescriptorFactory.fromBitmap(icon)
}
private fun getClusterItemView(size: Int): BitmapDescriptor {
clusterBinder.tvCount.text = size.toString()
val icon = clusterIconGenerator.makeIcon()
return BitmapDescriptorFactory.fromBitmap(icon)
}
override fun onClusterItemRendered(clusterItem: ClusterData, marker: Marker) {
super.onClusterItemRendered(clusterItem, marker)
}
override fun getDescriptorForCluster(cluster: Cluster): BitmapDescriptor {
return getClusterItemView(cluster.size)
}
override fun shouldRenderAsCluster(cluster: Cluster): Boolean {
return cluster.size >= 2
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... red-marker