Clustering feature

Hello,

Has anyone implemented a clustering plugin for when many elements are in the same area or have the same lat/lon? For example, in LeafLet, there’s a Marker Cluster plugin (https://github.com/Leaflet/Leaflet.markercluster). If not, does anyone have any guidance towards creating such a feature (I imagine looking at Leaflet’s version might be a good starting point). I also see that Vega (http://cesiumjs.org/demos/vega.html) created clustering but that doesn’t appear to be open source?

Minh

Minh,

There was some progress made on this feature, but it is not complete. See the status thread and the roadmap.

Patrick

Hi Patrick, Any progress on marker cluster? We are looking for similar functionality too…

I don’t believe there is any recent progress on this.

Patrick

I too puzzled over this problem, thought I'd share my findings..

For a project I'm currently working on (unfortunately not open-source, yet..) we have resolved to create a bespoke server-side clustering service, which will serve up data for Cesium via rest API (queries by a camera height index + view extent). However; we're doing this because we need to handle large data sets, and facilitate advanced filtering/querying/visualisation of the underlying data.

If you just need simple clustering of point data - I have noticed GeoServer's rendering transformations (http://docs.geoserver.org/stable/en/user/styling/sld-extensions/rendering-transform.html) look _very_ similar those demonstrated in Vega :wink:

I've had a quick play with the SLD styling, and they are quite straight forward to set up.
So if you need clustering of point data (or cool heatmaps) in Cesium, it might be worth considering publishing your own GeoServer service to consume in your app.

Check this out: http://webiks.com/cesium-clustering/
I’ve shown this in action in the cesium conference in Singapore.

Let me know if this helps…

Hi Yonatan, that demo looks pretty cool. Are you publishing or sharing the implementation code?

Thanks

Ricardo

Hi Ricardo. The code is on github as part of the (unfortunately unfinished)
ngCesium library. There's also the explanation on how it was implemented in
the blog post: http://webiks.com/cesium-clustering/.
Let me know if you need any more clarifications.
If you want, you could share your use case and I could try to generalize
the demo enough for you to use (and hopefully it would fit more people this
way).