Overlay visualization, large dataset, temporal component?

I have a 2D visualization (using Leaflet) that I’ve built which works a bit like this NY times viz of taxi traffic in NYC. There’s a great deal of data spread across large parts of the globe.

In our case, we’re dealing with several thousand polygonal geographic regions, each of which has between zero and ~100 “intensity” values labeled by date. I have full control over the format in which the data is served. The plan is to draw polygons over the map, with the color based on the intensity value, which would change depending on the currently selected date, with the ability to do an animated “playback” of a time range.

Ideally, I’d like to have the application fire off requests to the server to load data as needed depending on the current view of the globe.

It looks to me like the 3D Tiles mechanism might be a good match for this once temporal data is incorporated into them (which I know is planned, but isn’t available yet)… but maybe in the meantime there’s something simpler that already exists in Cesium and/or some library or other which will do the trick?



Hello Dan,

Neat visualization! What format is your data in? I think 3D tiles will ultimately give you better performance once it has temporal data support, but in the mean time you can try converting your data to the CZML format. This format is great for creating time dynamic visualizations. You can read about the spec here: https://github.com/AnalyticalGraphicsInc/czml-writer/wiki/CZML-Guide

We also have a bunch of CZML examples in our Sandcastle demo app: http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=CZML%20Billboard%20and%20Label.html&label=CZML

Cesium should be able to handle drawing several thousand polygons with no problem.

Let me know if you get something up and running! I’d love to see the finished result.



My data is stored in MongoDB, with a NodeJS application serving it. Am thinking since CZML is JSON-based, we should be able to directly store it in Mongo so the web app can just pass it directly on to the client without any processing… which would be nice. This sounds like an excellent approach until 3D tiles are ready. Thanks!