На экране происходит отображение Маркеров на карте с кластеризацией.
При клике на любой объект карты происходит ререндеринг
В любой момент могут прилететь данные из MediatorLiveData.
Как происходит показ маркеров:
1. Очистка маркеров с карты
2. Очистка линий с карты
3. Очистка данных из кеша (HashMap)
Затем происходит кластеризация и показ маркеров
Процесс не моментальный
Проблема:
По какой-то причине на карте остаются на карте маркеры, хотя они не должны быть там
googleMap.clear() использовать нельзя, поэтому я и из кеша достаю все маркеры и линии и удаляю их.
Предполагаю, что во время этого процесса, могут прилетать новые данные, которые нарушают порядок
Например в кластеризации там 3 класса друг в друге, каждый или с ThreadPoolExecutor или c AsyncTask.
Мне нужно синхронизировать это,
чтобы во время перерендеринга (нажатие на любой элемент на карте, или уменьшение zoom карты) или при прилете новых данных для рендеринга,
они не накладывались друг на друга.