Как изменить видимость маркеров в ClusterManager, одновременно имея доступ к объекту ClusterItem? - PullRequest
0 голосов
/ 12 сентября 2018

В настоящее время я знаю, что единственный способ изменить видимость маркеров в ClusterManager - это markerClusterManager.getMarkerCollection().getMarkers(), что дает мне Collection<Marker> object. Затем вы можете изменить видимость этих маркеров.

Однако я хочу изменить видимость маркеров на основе информации, которая доступна только в моих пользовательских объектах ClusterItem. Но метод getMarkers() дает мне только объекты Collection of Marker, у которых нет этой информации. Я могу получить свои собственные ClusterItem объекты, но не могу изменить их видимость. Я могу сделать это только путем получения самого объекта Marker, который, повторюсь, не содержит информации, содержащейся в моем пользовательском объекте ClusterItem.

1 Ответ

0 голосов
/ 12 сентября 2018

Хорошо, я подумал об обходном пути, который, кажется, работает хорошо. Чтобы изменить видимость маркеров, я просто выполняю clusterManager.removeItem () для объектов ClusterItem, которые я хочу сделать невидимыми, и clusterManager.addItem () для объектов ClusterItem, которые я хочу видеть. После этого я вызываю clusterManager.cluster (), чтобы он перезагрузил кластеры. Для объектов ClusterItem, которые я удалил из clusterManager, я сохраняю их в списке, а затем добавляю их обратно в ClusterManager всякий раз, когда я хочу, чтобы они снова были видны. Я все еще предпочел бы решение, которое могло бы использовать метод setVisibility (), но я собираюсь использовать этот обходной путь, пока кто-то не покажет лучший способ.

...