Skip to content
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

Dynamically changing points #19

Open
1ec5 opened this issue Aug 12, 2016 · 13 comments
Open

Dynamically changing points #19

1ec5 opened this issue Aug 12, 2016 · 13 comments

Comments

@1ec5
Copy link

1ec5 commented Aug 12, 2016

Currently, if a point is added, removed, or moved, you have to recluster all the points, which can be expensive. For mapbox/mapbox-gl-native#5814, it should be possible to update the clustering to account for dynamically changing points.

/cc @mourner

@fungiboletus
Copy link

I am considering to develop a hybrid clustering layer, combining supercluster for static markers and prunecluster for dynamic markers. But if supercluster supports dynamic markers out of the box with good performances, I probably shouldn't do it.

How likely do you think supercluster will support this feature in the next two years ?

@mourner
Copy link
Member

mourner commented Sep 27, 2016

It's likely, although will probably come with performance costs. Supercluster used to be rbush-based and was 2.3 times slower: #5

@fungiboletus
Copy link

Will you update kdbush to support dynamic points with a performance cost, or have some kind of hybrid approach as well ?

@mourner
Copy link
Member

mourner commented Sep 27, 2016

KDBush algorithm is static by design. I'd have to roll back to RBush.

@mourner
Copy link
Member

mourner commented Jan 19, 2017

I guess this is not as critical as it may seem, because you rarely need to dynamically change an already huge dataset on the client. Typically you either have a large static dataset, or a small dynamic one. Since Supercluster is extremely fast, it's usually fast enough to regenerate the whole clustering in the dynamic case.

@1ec5
Copy link
Author

1ec5 commented Jan 19, 2017

For mapbox/mapbox-gl-native#5814, the highly dynamic point annotation layer could be small or it could be large – we’ve seen plenty of examples of either in the iOS SDK. But I agree that we should try to make point annotation clustering work in the first place before worrying about this optimization. Do you think the optimization proposed in mapbox/mapbox-gl-native#5814 (comment) would suffice in the meantime?

@viktorstaikov
Copy link

Hi,

I'm considering Supercluster for my backend and I need to be able to add new points to the clusters.
Is there a way to add points efficiently to the clusters without rebuilding it?

I'm expecting to have more than 500k points in my DB and I can't imagine loading them everytime a new one is added. Can you suggest an approach?

Thanks

@XiiiRuth
Copy link

XiiiRuth commented Jan 18, 2019

For mapbox/mapbox-gl-native#5814, the highly dynamic point annotation layer could be small or it could be large – we’ve seen plenty of examples of either in the iOS SDK. But I agree that we should try to make point annotation clustering work in the first place before worrying about this optimization. Do you think the optimization proposed in mapbox/mapbox-gl-native#5814 (comment) would suffice in the meantime?

i hope it will be realize,did you guys try to do it?or meet some problems?

@XiiiRuth
Copy link

I guess this is not as critical as it may seem, because you rarely need to dynamically change an already huge dataset on the client. Typically you either have a large static dataset, or a small dynamic one. Since Supercluster is extremely fast, it's usually fast enough to regenerate the whole clustering in the dynam

I guess this is not as critical as it may seem, because you rarely need to dynamically change an already huge dataset on the client. Typically you either have a large static dataset, or a small dynamic one. Since Supercluster is extremely fast, it's usually fast enough to regenerate the whole clustering in the dynamic case.

well,when have a large static dataset,it will be waiting for many seconds,a dynamicallu feature may be useful

@RWOverdijk
Copy link

Are there any updates on this? I've been trying to use this through react-native-super-cluster but every change made causes quite a big delay. Anything that can be done?

@mourner
Copy link
Member

mourner commented Mar 6, 2019

Not at the moment unfortunately.

@RWOverdijk
Copy link

Ahw... Ah well. Thanks :)

@StuRuby
Copy link

StuRuby commented Apr 1, 2019

Supercluster uses kd bush to generate index, so it do not support dynamic indexing data

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants