I’m trying to create an imagery provider to a custom backend that pushes realtime updates to imagery tiles in realtime. I looked into the source for various imagery providers and tried using a TimeIntervalCollection but this seemed to be for when you know the time intervals in advance (not sure how this is used with weather map service when images updated). There is no way of notifying Cesium when an individual tile had been updated except by calling _reload() that is set by GlobeSurfaceTileProvider to reload all tiles from the provider.
There is also no way to know when Cesium has released an imagery tile image. The ImageryProvider is expected to return an Image or Canvas HTML element in response to a call to requestImage(x, y, level). If I create a websocket for each image then I don’t know when I can disconnect them. HTTP2 allows up to 128 active websockets. I exceed this very quickly when zooming in/out even though the ImageryProvider’s min/max bounds is less than 1km per side.
When I update the returned Canvas images and call _reload() so Cesium will use the updated images, I notice Cesium sometimes stops updating some of the tiles. I have tested this without websocket code, just returning Canvas that is updated 30 times a second with a rotating coloured square. I can provide code of this example to show the problem. I’m not sure if this is because I am updating the same Canvas I returned previously. Should I use double buffering to update 2nd Canvas and swap them each time Cesium calls requestImage() ?
Can you please add support for dynamic ImageryProvider images to your schedule?
Is there a way to find out when an image is no longer active?
Using Cesium 1.58.1