там же там никак не получить – на сколько я понял – поэтому приходится хранить коллекцию нарисованных маркеров самому.
Я использую MVVM. View говорит, что пользователь нажал галку, VM отвечает, что нужно нарисовать маркер.
И дальше несколько странный момент. Чтобы нарисовать маркер нужно вызвать mMap.addMarker(markerOptions), возвращающий Marker, который можно будет потом убрать с карты, вызвав у него remove. И чтобы VM рулила показом/удалением маркеров, мне нужно ей передать этот Marker.
И вот тут, чувствуете, как будто какой-то излишний обмен:
mViewModel.drawMarker.observe {
val marker = mMap.addMarker(markerOptions)
mViewModel.markerDrawn(id, marker)
}
До этого я работал с ClusterManager у тех же GoogleMaps, и там можно было ClusterItem наприямую из VM формировать.
Может, я что упускаю?
Может, у вас View рулит показом / удалением маркеров?
Такое ощущение что вы пытаетесь с mvvm работать так же как с mvp
Обсуждают сегодня