Open iniko83 opened 5 years ago
Решил проблему обновляя items в mapUpdater только после анимации map в boundingBox, благо Rx с легкостью это позволяет делать. Т.е. следующий алгоритм.
1) Вначале анимации zoomToBoundingBox - collection.clear() 2) По завершению анимации выставляем items.
` checkoutItems .subscribe(onNext: { [unowned self] items in self.updateVisibleItems(items) }) .disposed(by: disposeBag)
private func updateVisibleItems(_ items: [CheckoutItem]) { let delayedItemsDisposeBag = DisposeBag() self.delayedItemsDisposeBag = delayedItemsDisposeBag
mapUpdater.clearPlacemarks()
let timeInterval = viewModel.inputs.mapTransitionDuration.value
Observable.just(items)
.delay(timeInterval, scheduler: MainScheduler.instance)
.bind(to: mapUpdater.inputs.visibleItems)
.disposed(by: delayedItemsDisposeBag)
}
`
Подскажите пожалуйста, как решить такую проблему:
Есть YMK, есть набор placemarks и switcher, который переключает visibility данных place marks. Оно все плавно анимируется и работает как надо.
Решили добавить clustering и сходу столкнулись с множеством проблем: 1) Не распознает visibility, кластеризуя все placemarks вне зависимости от. 2) Ок, убрали visibility и пересоздаем placemarks каждый раз. Но при этом, мы естественно удаляем/приближаем камеру, чтобы все items вошли в focusRect. При этом clustering показывает наши placemarks + clusters и по мере удаления их "смешивает". 3) Ок, попробовали установить opacity в 0 и по завершению показа показывать то что есть, потому что сам процесс выглядит не очень. Вызываем collection.parent.traverse - он не находит кластеры...
Как решить эту проблему?
P.S. Ну а про интерфейс просто промолчу. Хуже я даже не припомню.
P.P.S. Видео: https://www.dropbox.com/s/jym4vlcvfouhtiq/clustering_example.mov?dl=0