-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Анимированный кластер #201
Comments
Добрый день. То есть таким образом, в SimpleClusterRendererImpl при формировании кластера можно запустить таску на обновление иконки. Самое интересное - как идентифицировать кластер после его формирования. Нужно в userData установить какой то идентификатор, который нужно сохранить. Ну а далее, в таске по обновлению иконки, первый раз находим кластер в MapObjectManager для сохранения ссылки на него. Для этого вызываем |
Спасибо за ответ. Я обязательно это попробую. Но у меня есть еще одна проблема с методом renderCluster. Как я заметил он работает не на главном потоке, что приводит к сбою мой механизм формирования иконки для класетра. Сам кластер это SwiftUI.View я передаю в него изображение маркера и кол-во элементов кластера, после чего вызываю метод snapshot() для получения UIImage на основе View. Метод snapshot() может работать только на главном потоке. Так же я заметил что если вернуть SimpleClusterOptions(icon: nil) то маркеры не отображаются на карте даже когда они не в кластере. @MainActor
func renderCluster(cluster: SimpleClusterObject) -> SimpleClusterOptions {
if let annotation = cluster.objects.first?.userData as? ChildAnnotation {
let uiImage = YClusterAnnotationView(image: annotation.image,
count: Int(cluster.objectCount))
.snapshot()
var icon = self.imageFactory.make(image: uiImage)
return SimpleClusterOptions(
icon: icon,
iconMapDirection: nil,
text: nil,
textStyle: nil,
iconWidth: LogicalPixel(30.0),
userData: "",
zIndex: ZIndex(value: 6)
)
}
return SimpleClusterOptions(icon: nil)
} Есть ли возможность вызвать renderCluster на главном потоке? |
Нет, такой возможности нет. Как вариант, можно кластеру проставить временно заглушку, отправить задачу на главный поток, и установить иконку уже потом. |
Если формирование кластера идет не на главном потоке есть хотя бы какой то callback сообщающий о том что кластер сформирован и можно его изменить? |
Например, можно заложиться на |
Версия 7.4.0 опубликована. Теперь все ок? |
RPReplay_Final1700210160.mp4
Да, смена иконки работает. Спасибо. Но проблему с анимацией кластера до конца решить не удалось. |
У нас кластеризация быстрее работает, чем у Яндекса или Гугла, за счет как раз выстраивания дерева кластеризация сразу же после добавления объектов.
Это очень спорный месс, так как:
Мы готовы доработать еще кластеризацию, даже в 7 версию. Но нужен список требований того, что сейчас не хватает. Добавление колбэка о том, что кластер сформирован - этого достаточно? |
Добрый день.
Кластер состоит из объектов людей на карте у каждого объекта есть личная фотография.
Когда эти объекты собираются в кластер, изображение кластера должно меняться раз в секунду на фотографию входящего в него объекта. И так по кругу.
Просмотрел документацию и тестовый проект, но не нашел способа реализовать подобное.
Буду очень благодарен за ответ.
The text was updated successfully, but these errors were encountered: