Получение маркера из ClusterRenderer возвращает ноль для кластеризованного маркераAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Получение маркера из ClusterRenderer возвращает ноль для кластеризованного маркера

Сообщение Anonymous »

Я пытаюсь выбрать и отменить выбор маркера, используя данные кластера через средство визуализации кластера. Получаю ноль при получении маркера для кластеризованного маркера.

Код: Выделить всё

private fun setMarkerIcon(item: ClusterData) {
val icon = markerIconGenerator.makeIcon()
val bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(icon)
clusterRenderer?.getMarker(item)?.setIcon(bitmapDescriptor) //getting null here
}
Я пробовал использовать менеджер кластеров MarkerCollection и ClusterMarkerCollection. То же самое возвращает ноль для кластеризованного маркера.

Код: Выделить всё

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 }
DefaultClusterRenderer

Код: Выделить всё

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»