Как использовать два Listener'a одновременно? В Yandex MapKit
Проблема в том, что не получается нажимать на маркеры и значки перестают поялвляться, когда использую оба listener. Вот код:
private fun startListeners(map: Map) {
map.addCameraListener { _, _, _, _ ->
Log.d("@@camera", "Camera moved")
val currentTime = System.currentTimeMillis()
val elapsedTime = currentTime - lastSetPlacesTime
val currentCoordinates = Pair(
map.cameraPosition.target.longitude,
map.cameraPosition.target.latitude
)
// Проверяем, прошло ли достаточно времени с момента последнего вызова setPlaces
// и изменились ли координаты карты
if (elapsedTime >= 1000 && lastMapCoordinates != currentCoordinates) {
lastSetPlacesTime = currentTime
lastMapCoordinates = currentCoordinates
lifecycleScope.launch {
withContext(Dispatchers.Main) {
if (isZoomed) {
viewModel.attraction = viewModel.getAttractions(
map.cameraPosition.target.longitude - 0.005,
map.cameraPosition.target.latitude - 0.005,
map.cameraPosition.target.longitude + 0.005,
map.cameraPosition.target.latitude + 0.005
)
setPlaces(
map
)
}
}
}
}
map.mapObjects.addTapListener { mapObject, point ->
viewModel.latitude = point.latitude
viewModel.longitude = point.longitude
Log.d("@@StartTrans","StartTransaction")
/*findNavController().navigate(R.id.action_mapsFragment_to_infoFragment)*/
true
}
}
}
Я пробовал и отдельно их использовать и вместе и в корутине. Единственное, что понял по документации, что нужно хранить(?), но как тогда потом использовать слушатель на сохраненных маркерах непонятно.